- •Физика-математика факультеті Ақпараттық технологиялар кафедрасы
- •Алгоритмдер, деректер құрылымы және программалау пәнінің
- •Физика-математика факультеті Ақпараттық технологиялар кафедрасы
- •Силлабус
- •Талдықорған 2013 жыл
- •Бағалау саясаты
- •Пән бойынша студенттің білімін балмен бағалау көрсеткіші
- •Баға қоюдың критерилері
- •Практикалық сабақтардың күнтізбелік-тақырыптық жоспары
- •Дәрістердің күнтізбелік-тақырыптық жоспары
- •Жеке нұсқалар бойынша тапсырмалар
- •Жеке нұсқа бойынша тапсырмалар
- •Жеке нұсқа бойынша тапсырмалар
- •Студенттердің оқытушымен бірге өздік жұмысын (осөж) орындауға арналған әдістемелік ұсыныстар
- •3. Екі комплекс санның көбейтіндісі мен қосындысын табатын программа құрастыр.
- •Бақылау сұрақтар мен жаттығулар?
- •Дәрісханалық кешен
- •Шартты өту командасын пайдаланып циклді процесті ұйымдастыру.
- •Сызықтың стилi
- •Сызықтың қалыңдығы
- •Сызықтың стилi мен түсi сызықты сызбас бұрын орнатылуы қажет. Мысалы,
- •Тiктөртбұрыш салу. Сол жақ жоғарғы бұрышы (х1,у1) нүктесiнде, оң жақ төменгi бұрышы (х2,у2) нүктесiнде орналасқан тiктөртбұрыш салуға арналған бiрнеше процедура бар:
- •Эллипстiк доғаларды салуға. Ellipse(X,y:integer; StAngle, EndAngle, xR, yR:word)
- •Толтырғыштардың стандартты стилдерi
- •Ұсынылатын әдебиеттер тізімі:
- •Бақылау-өлшеу құралдары
- •Оқу сабақтарының программалық және мультимедиалық тізімі
- •Арнайы аудиториялар, кабинеттер, зертханалардың тізімі
Шартты өту командасын пайдаланып циклді процесті ұйымдастыру.
Айталық таспада бірнеше белгілер қатар орналассын, тетік ең шеткі оң жақ белгіде тұрсын. Тетікті сол жақ бос ұяшыққа дейін жылжыту керек.
--cтop
1 2 2— 3 cтop 3
--1
Пост машинасында мәлімет беру және онымен амалдар орындау. К саны Пост машинаның таспасында қатар жатқан к+1 белгімен беріледі.
__
|
√ |
√ |
√ |
√ |
|
√ |
√ |
√ |
Кез-келген санға 1-ді қосу программасы.
Таспада 1 сан жазылған және тетік осы санның 1 ұяшығында орналасқан деп есептейік. Ол үшін тетікті солға бірінші бос ұяшық табылғанша жылжытып белгі қою қажет.
__
|
|
√ |
√ |
√ |
√ |
√ |
√ |
|
--3
1) 1 2 2— 3 M 4 4 cтop4 /бірді оң жағына қосу/
--1
--3
2) 12 2— 34 4 M 5 5 стоп 5 /бірді сол жағына қосу/
--1
Бүтін 2 оң екі санды қосу. Тетік A санның үстінде орналассын, ал В санының оң жағында орналассын.
Бірінші санды біртіндеп екінші санға дейін жылжытамыз. Содан соң бір белгіні өшіреміз
__
|
|
√ |
√ |
√ |
|
|
|
√ |
√ |
√ |
√ |
√ |
|
|
--3 --7 --15
1 2 2— 34 4c5 56 6-- 78 8-- 9 10
--1 --8 --9
--13
10 M 11 11 12 12— 1314 14c17 15 16 16M17 17стоп17
--14
1)Пост машинасын ЭЕМ-ның қарапайым моделі деп қарастыруға болады, ол солай да. ЭЕМ тәрізді Пост машинасы толтырылған немесе толтырылмаған ажыратылмаған информация тасмалдаушылардан тұрады.
2) Белгілі бір амалдар тобы бар. ЭЕМ-да Пост машинасы да программамен жұмыс жасайды. Айырмашылығы: Пост машинасында мәліметтер бір жолға жазылады және біртіндеп оқылады. Ал ЭЕМ-де информация адресі бойынша оқылады.
№3 дәріс
Тақырыбы: Жоғарғы деңгейдегі программалау тілдері.
Дәріс жоспары:
Жоғарғы дәрежелі программалау тілдеріне түсініктеме
Программалаудағы параметрлердің берілу семантикасы
Жоғары дәрежелі программалау тілдерінің қасиеттері
Кілт сөздер: Fortran, Algol, Basic, Logo, Prolog, Cobol, туынды, ұрпақ немесе ішкі кластар
Иллюстрациялық материал: слайдттар
Программалық тілдің даму бес сатыдан тұрады. Олардың біріншісі елуінші жылдардың басында пайда болды, яғни компьютер жаңадан пайда болғанда бірінші программалық тіл болып Ассемблер болып табылады. Бірінші инструкция бір жолда мақсатында құрылады.
Программалау тілдің екінші сатысы елуінші жылдардың аяғы алпысыншы жылдардың басында пайда болды. Бұл кезде қайта өңделген символдық ассемблер ұғымы пайда болды. Ол сол кездегі бірінші толық программалау тілі болып табылды.
60 жылдары 3-ші сатылы программалау тілі қабылданды. Осы уақытта әмбебап жоғарға дәрежелі тілдер пайда болды. Осы тілдер көмегімен кез-келген жаттығуларды шығаруға болатын болды. Жаңа тілді мықты синтаксистикалық конструкторге пайдалануға болады. Программистердің еңбек өнімділігі күрт жоғарлады. Көп қолданушылардың түсінігі бойынша структурасы күрделі емес программалар жазды (ережелер инженерлік, экономикалық сипатта болды). Осы сатыдағы тілде қазіргі күнге дейін қолдану ісінде 70 жылдардың басында тілдердің 4-ші сатысының периоды басталады. Бұл тілдер күрделі жобалар жасу үшін керек болады. Бұларда әдетте маманданджырылған облыстарда қолданылады. Осы тілде мықты операторлары болады. Оларды 1 ғана жолға жазады. Бұл тілдегі 1000 жолдан астам қатар керек.
5-ші сатыдағы программалау тілі 90-шы жылдардың жартысында пайда болды. Оларға системалық автоматты түрдегі программалар қажет. Бұл тілдің бастамасы болып автоматты форматтау мүмкіндігі, әмбебап тілдегі программалар жатады. Тілдің инструкциясы компьютерлерге өте жақсы көрінеді қолданушыға өте ыңғайлы әсіресе программамаен таныс емес адамдар үшін.
Жоғарғы дәрежелі программалау тілі.
Fortran – Бұл 1-ші компиляторлық тіл оны құрған Джиммен Бэксум 50 жылдары негізгі критери компелятор және эфективті кодтар. Бұл кездері бұл тілге көп көлемді библиотекалар берілді. Олар статистикадан бастап спутниктің қозғалыснан бастап басқарады. Сондықтан Fortran көп мекемелер қазіргі кезде де қолданылады. 2000 жылы шыққан Fortran F2 K қазіргі кездегі қоданудың үстінде Fortran HPF стандартты түрде.
Cobol – Бұл тілдің көп жағдайда экономикалық облыстарда және бизнес есептерін шешуге қолданылады. 60 жылдары бастап пайдалануға қолданды. Оның айырмашылығы кей кезде жазулары ағылшын жазаларына ұқсайды. Cobol – да жұмыс істеу қабілеті өте күшті және мәліметтер көлемі өте үлкен. Бұл тілде сөйлемдер өте көп берілген. АҚШ айлық ақшаны алу үшін осы программалар құрастырылған.
Basic – 60 жылдардың ортасында Драмупск коледжінің математика факультетінің қызметкері Томос Куртс және Джон Кэмэни ағылшын тілінің жай сөздерінен тұратын ерекшеліктерін жаңа программалау Basic тілін шығарды. Basic тілі 1964 жылы дүниеге келген. Бүгінгі таңда универсалда Basic тілі дүние жүзінде электорнды есептеуіш машинаға қолданудын арасында кең таралды. Basic тілі дүние жүзі бойынша 1-ші таралған 1-ші орын алады. Basic тілі жай программалау жазған кезде қолданылады ал Fortran ЕЕМ-да математикалық және инженерлі есептерді шығаратын классикалық программалау түрі.
Logo – Оқушыларды программалауға үйретуге арналған тіл.
Prolog – Тіл жасанды интелект жүйсенің құрылуына арналған программалау тілі. 1950 жылдың соңында программалау саласында халықаралық саласында Algol тілі келді (алгоритм тілі). Algol тілі жазуға арналған тіл берілген есептің шешіміне қолданылатын тізбектелген процедура қолданылған. 70 жылдың басында Швеция ғылымы Никлос Виру Паскаль тілің құрды. Paskal тілі алғаш рет оқулық ретінде жүзеге асқан. Шын мәнінде қазіргі кезде ол жоғарғы оқу орындарына және мектептерге программалауға үйрету тілі болып табылады. Оның қасиеттері жоғары болғандықтан профессионал программист ретінде қолданады. 1979 жылы Ada тілі құрылды. Ada тілі Paskal тілінің жалғасы бұл тіл үлкен программалар құруға арналған.
1972 жылы С тілі пайда болды. Үлкен және кіші ЭЕМ арналып жасалған көптеген тілдерді ішінен дербес компьютерге қолдана бастады. «Персоналка» немесе тек Paskal, Basic, C, Logo тілдеріне ғана емес лисп, Prolog жасанды интелект тілдерде көрінді.
Көп жылдар бойы программалық жабдықтау операцияны және процедуралы тілдері негізнде құрылды. Бұлар Fortran, Basic, Paskal, Ada, C тілдері құрылды.
Объектіге-бағытталған программалау келесі кластар терминінде программалауға мүмкіндік береді. Олар:
Кластарды анықтау;
Бар кластар негізінде жаңа, туынды кластар конструкциялау;
Осы класта жататын объектілер құру.
Object Pascal тілінде кластар арнайы мәліметтер типтері болып табылады және объектіні үшін пайдаланылады. Қандайда бір кластың типінен тұратын объект осы кластың данасы немесе айнымалысы болып табылады.
Класс дегеніміз өріс, қасиет және әдіс сияқты элементтерден тұратын жазбаның ерекше типі.
Object Pascal-да кластар деп өрістер, әдістер және қасиеттерді қамтитын арнайы типтерді айтады. Басқа тип сияқты класс объект деп аталатын нақты экземплярды құру үшін тек үлгі болып қызмет етеді. Класс объектінің қасиеттерін және оның әдістерін сипаттайды. Объектіні құру кезінде ол өз класының құрылымын (яғни, айнымалыны) және күйін (әдісін) меңгеретін болады.
Өз кезегінде туынды, ұрпақ немесе ішкі кластар, сонымен қатар, басқа ата кластардың негізінде құрылуы мүмкін. Сәйкесінше, оның құрылымы мен күйн меңгереді.
Кез келген компонент немесе объект әр кезде класс экземпляры болып табылады. Программалық түрде объекті объектілі типті айнымалыны білдіреді
Программалаудағы параметрлердің берілу семантикасы.
Формалардан программа құру үшін, параметрлерді белгілеу үшін, еркін таңдау индиорикаторын жүзеге асыру керек. Ол үшін параметрі обьектің индификаторы болуы қажет емес, параметр – функциясы да жүзеге асады.
Осындай еркін таңдау беру қолдану кезінде параметрде жүйелі тапсыру болады: қандай нақты берілу таңдалған. Керісінше, сол индификаторларға жүйелі болып табылатын интерпритация болу керек, соларға семантикалық мазмұндама жазылу керек.
Подпрограмманы шақыру кезінде шын мәнінде параметрлер меншіктелінеді: осы кезде дағдылы параметр түрінде шынында да формулаларда да жіберіледі, сондықтан композициялық операция пайда болады.
Операциялық семанткаға бұл кезде екі кеңейтілген мүмкіндікті айыру керек.
Формула аргументінің мағынасы есептелінеді және есептеудің нәтижесі егер ол жақсы болса, онды ол программаның барлық денесіне формальді элементтің орнына жазылады. Осында классикалық мағынадағы вызов түседі, бірінші орында әрқашанда тосу мағынасындағы формула есептелінеді, қайталап оны есептеуден құтылуға мүмкіндік береді.
Формуланың өзі формальді параметрлерің орнына әкелінеді. Осында көбінесе классикалық формула шақыруы түседі, бірінші орнында әрқашанда ауыстырылу орныдалады.
Программалау тілдерін сипаттайтын мета тілдер.
Программалау тілдерінде синтаксисін нақты сипаттауға мета тілдер қолданылады.
Мета тілдер басқа тілдерді сипаттайтын тілдер. Кең тараған мета тілдерінің бірі Бекус –Наур металивистикалық формцуласы және Вирт синтаксисті диаграммасы болып табылады.
Б.Н. формуласының тілі математикалық тілге ұқсас кейбір формула түрінде берілген жинақты форманы ұсынды.
Әрбір тілдің ұғымы үшін жалғыз ғана мета формула берілген. Ол оң және сол бөліктерінен тұрады.
Жоғары дәрежелі программалау тілдерінің қасиеттері
Тілдің алфавитті машина тілінің кең түрде берілген. Мәтінді түсінікті және көрнекті түрде көрсетеді. Қолдануға арналған операция жиыны. Машина операция жиынына байланысты емес, ол анықталған класс есеп шығру алгоритмнің берілуің жеңілдетуіне таңдалады.
Команда конструкция мәліметтерді өндеу түрінде көрсетеді және адамға ыңғайлы түрде көрсетеді. Айнымалы оператор қолданылады және айнымалылар іс әрекетті қолданылады. Мәліметтер жиының кең жиыны сақталады.
Дәріс №4
Тақырыбы: Паскаль тілінің негізгі элементтері. Алфавит. Программа құрылымы.
Дәріс жоспары:
Паскаль тілі
Паскаль тілінің алфавиті және жазыл түрі
Программа құрылымы.
Кілт сөздер: апостроф, ASClI,процедура, модульдер
Иллюстрациялық материал: Электрондық оқулық
Кез келген тілдің алфавит! болатыны сияқты Паскаль тілінің өзіне тән алфавиті бар. Әр түрлі тексті кұру үшін пайдаланылатын қарапайым белгілерді тілдің символдары дейді.Сондай символдардың жиынтығын тілдің алфавиті дейді. Паскаль тілінің алфавиті төмендегі символдар тобын камтиды: 1)латынның 26 баспа және жазба әріптері:
A.B,C,D,...,V,W,X,Y,Y,Z, a,b,c,d,...,y,z; 2)араб цифрлары: 0,1,2,...,8,9;
ұлттық әріптер (қазақ, орыс және т.с., тек түсініктеме жазу үшін апостроф ішіне алып жазылады): А,Б,В,...,Ю,Я, а,б,...,я;
арифметикалық жэне логикалық амал белгілері: +(қосу), - (азайту),*(көбейту), /(бөлу), div (бүтін санды бүтін санға бөлінгендегі бүтін бөлінді), МОD(бүтін санды бүтін санға бөлгендегі бүтін қалдық), and(жәнe), ог(немесе), not(жоқ);
арнайлы символдар:
=, ., О, :, ;, <, >, ', (, ), [, ], {, }, _ бос орын және т.б. Әрбір символдың өзінің реттік нөміріне сөйкес белгіленген саны (коды) болады, олар мемлекеттік стандарт тұрінде бекітіледі. Қазіргі кезде кеп жағдайларда америкалық стандарт коды ASClI(American Standart Code for Information Interchange) пайдаланылып жүр. Бұл стандарт бойынша символдар былай кодталады:
0-48; А-65; а-97;
1-49; В-66; в-98;
9-59: Z-90; z-122.
Арифметикалық амалдар және өрнектер.
Паскаль тілівде төмендегі арифметикалық амал белгілері пайдаланылады:
+ - қосу амалы;
- - алу (азайту) амалы;
* - көбейту амалы;
/ - бөлу амалы;
DIV - бүтін санды бүтін санға бөлгендегі бүтін бөлінді:
MOD - бүгін санды бүтін санға бөлгендегі бүтін калдык.
Математика да жазылуы |
Паскаль тілінде |
Наткже типі |
|x| |
Abs(x) |
х-тін типіне сәйкес келелі |
Arctg x |
Arctan(x) |
Накты (Real) |
Cos x |
Cos(x) |
Накты (Real) |
Sin x |
Sin(x) |
Накты (Real) |
eх |
Exp(x) |
Накты (Real) |
х2 |
Sqr(x) |
Накты (Real) |
|
Sqrt(x) |
Накты (Real) |
ln x |
Ln(x) |
Накты (Real) |
|
Pi |
Накты (Real) |
х-тін бөлшек бөлігі |
Frac(x) |
Накты (Real) |
х-хін бүтін бопігі |
Int(x) |
Накты (Real) |
О мен 1 -дің арасындағы кез келген накты сан. |
Random |
Накты (Real) |
О-ден х-ке дейінгі кез-келген бүтін сан |
Random (x) |
Бүтін (Integer) |
Өрнек Нәтиже
11 DIV 5 2
10 DIV 3 3
2 D1V 3 0
Программа кұрылымы
Программа - белгілі бір программалау тілінің синтаксистік ережелеріне сәйкес жазылған нұсқаулар тізбегі, Демек, Object тілінде программа жазу ушін программалаушы оның жазылу ережесін жақсы білуі қажет.
Turbo Pascal тіліндегі программа жалпы мына түрде жазылады:
Программа тақырыбы; Сипаттау бөлімі;
begin
Орындалатын бөлімі;
end.
• Программа тақырыбы program қызметші сөзінен басталады. Ол программа атынан және параметрлерден тұрады. Мысалы:
Program esepl (input, output);
Мұндағы esepl - программаға берілген атау. Программалаушы программа атын өз қалауынша бере алады. Программа атауы оларды екінші бір программадан ажыратуға қажетті көрсеткіш.
Input, output - стандартты енгізу, шығару файлы. Сипаттау бөлімінде программада кездесетін барлық берілгендердің атауы, типі, мүмкін болатын мәндері, т.б.хабарланады. Орындалатын бөлімде begin және end қызметші сөздері арасына операторлар тізбегі жазылады. Сол себепті, Begin (ашылатын) және end (жабылатын) қызметші сөздерін операторлар жакшасы деп атаса да болады. Оператор -нұсқаулардың машиналық тілде жазылуы. Сонда әрбір оператор орындалуға қажетті әрекетті машинаға түсінікті түрде сипаттайды. Программаның бір жолына бірнеше операторларды жазуға болады. Олардың арасына (;) нүктелі үтір таңбасы, ал программаның соңын көрсететін end сөзінен кейін (.) нүкте қойылады. Программаның орындалатын бөлімінде жазылған операторлар тізбегін -программа денесі деп атаймыз.
Программа бөлімдері
Turbo Pascal тіліндегі программа төмендегі бөлімдерден түрады:
Программа тақырыбы;
Модульдер тарауы;
Тұрақтылар тарауы;
Типтер тарауы;
Айнымалыларды сипаттау бөлімі;
Процедура-функцияны хабарлау бөлімі;
Орындалатын бөлім:
Begin
Программа денесі (операторлар тізбегі);
End.
Сонда, программа құрылымы мына түрде болады:
Program программа аты; Uses
Модуль аты; Label Белгі;
Const Тұрақты атауы=түрақты мәні;
Type
Тип атауы = тип сипаттамасы; .
Var Айнымалылар атауы: типі;
Begin Операторлар тізбегі; End.
• Uses бөлімінде стандартты және пайдаланушылар модулі жарияланады. Мысалы, Uses crt;
Begin clrscr; {экранды тазалауды іске қосу}
• Кез келген операторды белгілей отырып, goto операторы арқылы программаның орындалу ретін өзгертіп, белгіленген операторға тікелей көшуге болады. Белгі атауы символдар тізбегі және бүтін оң сандармен қойылады.
Оператор мен белгі арасына (:) кос нүкте таңбасы жазылады. Белгілерді хабарлау бөлімі label кызметші еөзінен басталады. Программада кездесетін барлық белгі label бөлімінде хабарлануы қажет.
Label белгіі, белгі2, белгіЗ; Мысалы, Label I, 15,SUM,AC;
• Тұрақтыларды сипаттау бөлімі const (латынның constants -тұрақты деген сөзінің қысқартылуынан алынған) қызметші сөзінен басталады. Бұл бөлім программада төмендегідей жазылады: Const Тұрақты атауы=тұрақты мәні; Мысалы, Const G=9.8;
• Type бөлімде пайдаланушылар тарапынан анықталған типтер хабарланады.TurboPascal-да программалаушы Туре Тип атауы сипаттамасы; Мысалы,
Type Matris = array[1..3, 1..2] of real;
Бұл мысалда тип атауы -Matris кесте берілген, онын жол бойынша 3, ал бағана бойынша 2 элементі бар. Кестенің элементтерінің тегі нақты - real.
• Программада кездесетін барлық айнымалы var (ағылшынның variable- айнымалы деген сөзінің кыс-картылуы) бөлімінде хабарлануы керек. Var бөлімінде айнымалының атауы, типі хабарланады.
Программалау түрлері арнайы адаммен командалардың тіл табысуына құралған формальді тілдер. Әр бір программалау тілдің кәдімгі (орыс, қазақ, латын) тілІ сияқты алфавитті сөзді қоры грамматикасы жэне симантикасы бар.
Анықтама : алфавит дегеніміз белгілі бір кез - келген тілдің құрай алатын символдық жүйелер.
Алфавит мысалы: латын алфавиті: A,B,C,...,Z
Қазақ алфавиті: А,Ә,...,Я Орыс алфавиті: А,Е,...,Я Натурал сандар алфавиті: 0..9 Екілік сандар алфавиті: 0 және 1
Синтаксис - алфавит әріптерінен тұратын программалау тілдерінің анықтайтын ереже жүйесі. .
Симантика - мәліметтерді өңдеу процесін жүзеге асыратын жеке тілді конструкциясын бір мәнді талқылау ереже жүйесі.
№5 дәріс
Тақырыбы: «Тип түсінігі».
Дәріс жоспары:
Мәліметпгердің немесе шамалардың типі
Стандартты типтер
Қарапайым типтер
Күрделі типтер
Кілт сөздер: тіркестік,скалярлық, құрылымдық
Иллюстрациялық материал: Электрондық оқулық
Программада пайдаланылатын мәліметтердің немесе шамалардың мәндері Паскаль тіліндегі алдын ала келісілген типтердің біріне тән болуы тиіс.
Мәліметпгердің немесе шамалардың типі деп, олардың қабылдай алатын мәндерінің және олармен орындауга болатын амалдардың жиынын анықтауды айтады, ягни тип дегеніміз — шамалардың қабылдайтын мәндеріне берілетін сипаттама.
Мәліметтердің әрбір типі тек өзіне ғана сәйкес келетін операциялар жиынын орындата алады. Мысалы, 1 мен 2 мәндері бүтін сандар типіне жатады, оларды қосуға, азайтуға, көбейтуге және бөлуге болады. Ал, «IBM» және «PC» мәндері сөз тіркесі типіне жатады, бұларды біріктіріп жазуға ғана болады («IBM PC»). Қосуға, азайтуға, көбейтуге, бөлуге болмайды. Кез келген тұрақты, айнымалы функция немесе өрнек өзіне тән бір типінен ғана сипатталады. Паскаль тілінде шамалардың типін керсету міндетті болып табылады. Сондықтан программа алдында оның сипаттау бөлімінде пайдаланылатын барлык шама атаулары және оның типтері көрсетілуі кажет.
Паскаль тілінде пайдаланылатын барлық типтер скалярлык (карапайым) және кұрылымдық (структуралык) болып үлкен екі топка бөлінеді. Скалярлык (карапайым) типке шамалардың стандартты типі және жасанды тип (тағайындаған) жатады.
Стандартты типтерге:
бүтін — INTEGER;
нақты — REAL;
логикалық — BOOLEAN;,
тіркестік (STRING);
мәтіндік (TEXT) тәрізді типтер жатады.
Құрылымдық типтегі жиымдар — ARRAY, жазбалар — RECORD, жиындар — SET және файлдар — FILE (2.9-сурет) түрлеріне бөлінеді.Бұлардан өзге типтер программаның типтерді сипаттау бөлігінде анықталуы қажет. Тұракты сандардың типін олардың сырткы пішініне карап-ақ ажыратуға болады, ал айнымалылар мен функциялар типтері программаның сипаттау бөлімінде көрсетіледі. Ол үшін type түйінді сөзі қолданылып, жазылу пішімін былай көрсетуге болады:
type <тип атауы> = <тип мәндері> ;
Типті осылай сипаттаудың синтаксистік диаграммасы:
2
-сурет.
Типтерді сипаттау
диаграммасы :
Дәріс №6. Тақырыбы: Мәліметтерді енгізу және шығару. Қарапайым операторлар.
Дәріс жоспары:
операторлар мен операндалар
Меншіктеу операторы
Тармақталу командалары
Кілт сөздер: оператор, операнда, құрама операторлар
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Оператор - программадағы нұскаулардың (бұйрықтар, алгоритмдер) машиналық тілде жазылуы. Яғни, берілген есепті шешу мақсатында орындалатын іс-әрекеттердің машинаға түсінікті түрде жазылуы. Сонда, программа денесі бірінен кейін бірі жазылған операторлар тізбегінен тұрады. Операторлар арасына нүктелі үтір (;) белгісі қойылады.
Операторлар қарапайым және күрделі (құрама) операторлар болып екі топқа бөлінеді. Егер оператор құрамында басқа операторлар болмаса, онда ол қарапайым оператор деп аталады. Бүл топқа: меншіктеу, процедураны шақыру, шартсыз көшу - Goto, бос орын операторлары жатады.
Күрделі (құрама) оператор бірнеше карапайым операторлардан тұрады.
Меншіктеу операторы
Turbo Pascai-дың негізгі операторының бірі - меншіктеу операторы. Ол карапайым операторлар тобына жатады. Меншіктеу операторының жалпы жазылуы: айнымалы атауы := өрнек; Мысалы: X := 2*Ү + Z; Z:=A + В;
Берілгендерді енгізу операторы.
Программадағы орындалатын алғашқы іс-әрекет берілгендерді енгізу. Берілгендерді енгізу - программадағы алғашқы берілгендерді компьютердің жедел жадысына өндеуге жіберу болып табылады. Енгізудің негізгі құрылғысы - пернетақта және дискілік файл. Turbo Pascal-да берілгендерді енгізуге read - "оқу", readln (read line) -"жолды оку" операторлары колданылады.
Енгізу операторынын жалпы жазылуы:
Read (xl, х2, ...,xn);
Readln(xl,x2,...,xn);
Мұндағы xl,x2,...,xn - мәні пернетақтадан енгізілуге тиісті айнымалылар тізімі.
Мәліметтерді экранға шығару операторы.Мәліметтерді шығару - компьютердің жедел жадысындағы өңделінген мәліметтерді сыртқы құрылғыларға (экран, принтер) беру. Turbo Pascal-да мәліметтерді экранға шығару үшін write "жазу", writeln (write line) "жолды жазу" операторы қолданылады. Бұл операторлардың жалпы жазылуы мына түрде: Write (yl,y2,...,yn); Writeln( yl,y2,...,yn);
Бос оператор.
Turbo Pascal тілінде бос оператор (;) таңбасымен беріледі. Ол оператор программада ешқандай амал орындамайды. Ол тек программадан және құрама оператордан шығуда қолданылады.
Мысалы: Begin
goto белгі; {блоктың соңына көшу}белгі:
end; {бос оператор белгі арқылы •
белгіленген}
Шартсыз көшу операторы
Turbo Pascal тіліндегі программада операторлар жазылған ретімен орындалады. Осы реттілікті өзгертіп отаратын, яғни программаның кейбір бөліктерін орындамай өтіп кету және кері кайту үшін, шартсыз көшу операторы колданылады.
Шартсыз көшу операторының жалпы жазылуы:
GOTO белгі;
GOTO операторы орындалғанда, программаның орындалу реті брылып белгіленген операторға көшу жүзеге асады. Мысалы:
Label 10; Begin Goto 10; 10: у:=2*х; end.
№7,8 дәріс. Тақырыбы:Құрылымдық операторлар. Құрама, шартты және қайталану операторлары.
Дәріс жоспары:
Құрама операторлар
Шартты, таңдау операторлары
Қайталану операторлар:Әзірше, дейін және параметрлі
Кілт сөздер: цикл денесі,қадам
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Бірнеше операторлардын бірігуінен шыкқан операторды құрама оператор деп атаймыз. Бұл операторлар begin (басы) және end (соңы) қызметші сөздер арасында жазылады. Әр
оператордан кейін (;)"нүктелі үтір таңбасы койылады.
Қүрама оператордың жалпы жазылуы:
begin 1 - оператор;
2 - оператор;
N - оператор
end;
Begin (басы) жэне end (соңы) сөздерін операторлар жақшасы деп қарастырсақ, жоғарыдағы мысалды мына түрде жазуға болады:
(1 -оператор; 2-оператор; ...; N-оператор) Шартты көшу операторы
Алгоритмдік тілде қойылған шартқа байланысты екі немесе екіден де көп тармақтары бар алгоритм - тармақталған алгоритм деп аталады. Шартты көшу операторының жалпы жазылуы:
If <шарт> Then <1-оператор> Else <2-оператор>;
Мұндағы: If (егер) қызметші сөзінен кейінгі жазылған шарт ақикат болса Then (онда) сөзінен кейінгі жазылған 1-оператор орындалады, шарт сақталмаса Else (әйтпесе) сөзінен кейінгі 2-оператор орындалады. Шартты көшу операторы алгоритмдік тілдегі тармақталу командасына сәйкес келеді.
Егер <шарт> If <шарт>
Онда < 1 -оператор> Then < 1 -оператор>
Әйтпесе <2-оператор> Else <2-оператор>
Бітті
Егер, шартқа байланысты орындалатын бір ғана оператор болса, шартты көшу операторы қыскаша түрде жазылады:
Л
огикалық
амалдар:
Not - емес. And - және. Or - немесе. Хог - немесеге кері. Логикалык өрнектерді жазуга мысалдар: Программалауда койылған шартқа байланысты алгоритмнің тармағының саны көп болғанда case таңдау эператорын қолдану тиімді. Таңдау операторының жалпы жазылуы:
Case S of
Cl: 1-оператор;
С2:2-оператор;
Сn: n-оператор;
Else
оператор; End;
Мұндағы: Cl,C2,...Cn - тұрақтылар, S - кез келген өрнек. S -өрнек есептелгенде шығындысы тұрақтылардың біріне тең болуы керек.
Циклдік қурылымды алгоритмді программалау
Б
ерілген
есепті шешуде алгоритмнің кейбір
бөліктері бірнеше рет қайталанып
орындалуы
мүмкін. Мұндай кұрылымды алгоритмді
қайталанушы алгоритм
немесе
циклдік
кұрылымды алгоритм
деп
атаймыз. Turbo
Pascal-да
Циклдік құрылымды
алгоритмді
программалаудың үш түрлі жолмен
үйымдастыруға болады. .
Алдын-ала шартты тексеру арқылы.
Келесі шарт бойынша
Параметрдің мәніне тәуелді. Г
While операторы
Алдын-ала берілген шартты тексеру арқылы циклді ұйымдастыруға While операторы қолданылады. Негізінен циклдің қайталау саны белгісіз болғанда пайдаланған ынғайлы. Жалпы жазылуы: While <шарт> do
<циклдің денесі>; Мұндағы, кызметші сөздердің қазакша мағынасы: While "әзір", do - "орында". Ал, шарт - логикалық өрнек түрінде жазылады. Берілген шартқа тәуелді бірнеше рет әзір <шарт>
цб <цикл денесі>
цс бітті.
Жоғарыдағы блок схема While операторымен ұйымдастырылатын циклді толық сипаттайды. While операторында, эрбір қайталанудың алдында берілген шарт тексеріледі. Шарт ақиқат болса цикл денесі орындалады. Егер, шарт орындалмаса, цикл денесі де бірде-бір рет орындалмайды.
Келесі шарт бойынша циклді уйымдастыру.
Циклдік процесстерді ұйымдастыруда Repeat операторы циклдің қайталану саны белгілі болғанда қолданылады. Repeat оператордының жалпы жазылуы:
R
epeat
<циклдің
денесі>;
Until <шарт>;
Мұндағы, кызметші сөздер repeat - қайтала, until - соған дейін деген мағынада қолданылады. Циклдің денесІ -қайталанып орындалатын бір немесе бірнеше операторлардан Repeat операторы алгоритмдік тілдегі "дейін"— цикл командасына у_қсас. "Әзір" цикл командасынан "дейін" цикліна айырмашылығы: қойылған шартка тәуелсіз бірінші цикл денесу орындалады. Содан кейін, шарт тексеріледі. Демек, шарт ақиқат болмаса цикл денесі кемінде бір рет орындалады. Repeat операторыньщ кызметін суретгегі блок схема аркылы сипаттауға болады.
For операторы.
Циклдік құрылымды алгоритмді программалауда,
қайталанушы процесс бір айнымалының мәніне тәуелді болса, For операторын қолданамыз. Айнымалы тек бір қадамға ғана өзгере отырып, циклді басқарады. Бұл, айнымалы циклдің параметрі делінсе, For операторы параметрлі кайталану операторы деп аталады. For операторы алгоритмдік тілдегі параметрлі қайталану командасына сэйкес келеді.
і үшін ml бастап т2 дейін һ қадам
Цб серия Цс For операторы екі түрлі жазылады:
• 1-нұсқасы:
For X:=Ml downto M2 do SI;
1
-нүсқадан
өзгешелігі
to
сөзінің
орнына downto
(төменге
дейін) қызметші сөзі жазылады.
Downto
циклдің
өзгеру қадамы -1 тең екендігін көрсетеді.
Мүнда
Х-тің мәні
М1-ден М2-ге дейін -1 қадаммен кему үшін
М1>М2 шарты орындалуы керек. Егер бұл
шарт орындалмаса
цикл
денесі
бірде
бір
рет
орындалмайды
Парам етрдің мәніне тәуелді циклді блок схемада төмендегідей сипаттаймыз.
Күрделі циклдер
Күрделі қайталанушы процесстерді үйымдастыруда бір цикл операторы құрамында екінші бір цикл операторы болуы мүмкін.
Бүл жағдайда бірінші цикл операторы - сыртқы цикл, ал, оның қүрамындағы екінші оператор - ішкі цикл деп аталады. Сырткы жэне ішкі циклді үйымдастыруда мына шарт орындалады:
Дәріс №9
Таңырыбы: Процедуралар мен функциялары.
Программада белігілі бір қайталанатын іс-әрекеттерді, атау бойынша бөлек жазып, атауы арқылы бір немесе бірнеше рет іске косуға болатын программаның бөлігін қосалқы программа деп атайды.
Қосалқы программаларды қолдану арқылы программаларды ықшамдауға болады.
Turbo Pascal программалау тілінде косалқы программаның екі түрі қолданылады:
• процедура;
•Функция.
Turbo Pascal программалау тілінде айнымалыларды негізгі бөлімде сипаттау түрі -ауқымды айнымалылар деп аталады. Егер айнымалылар қосалқы программада сипатталса, онда олар жергілікті айнымалылар деп аталады. Сондай-ақ негізгі программада қосалқы программаны шақыруда колданылатын айнымалыларды пакты айнымалылар деп атайды. Ал косалқы программаның атауында берілген айнымалылар формальды айнымалылар деп аталады.
Әрбір қосалкы программаның атауы болады және олар айнымалыларды сипаттау бөлімінен құралып, операторлық жақшаларда орналаскан командалар жиынынан тұруы мүмкін.
Процедураларды қолдану.
Turbo Pascal программалау тілінде процедураның жалпы құрылымы:
Procedure proc_name(al,bl,...: type_l;a2,b2,...:type2);
[Процедурада колданылатын айнымалыларды сипаттау бөлімі]
begin
процедураның негізгі бөлігі end; Мұндагы:
proc_name - процедура атауы. Процедура атауында бос орын белгісі колданылмай символдар тізбегінен кұралады. Процедура атауы әріптен басталуы тиіс (мысалы: matrix, boxl, window2);
al,bl,a2,b2 - қосалқы программада қолданылатын айнымалылар тізбегі. Негізгі программамен байланыс ретінде қолданылатын айнымалылар сипатталады;
type_l,type2 - айнымлылар типі (мысалы: x:integer; y:real және т.б.);
begin - процедураның басы;
end; - процедураныц соңы.
PROGRAM программа атауы; USES модульдерді іске қосу; LABEL белгілерді анықтау; CONST турақтыларды анықтау; VAR айнымалыларды сипаттау; Procedure proc_l(al,bl,...: type_l); /prod процедурасында қолданылатын айнымалыларды сипаттау бөлімі]
Procedure ргос_2(а2,Ь2,... :type2); /Ргос_2 процедурасында қолданылатын айнымалыларды сипаттау бөлімі] begin
ргос_2 процедурасының негізгі бөлігі
end;
.
.
.
begin
ргос_1 процедурасыныц негізгі бөлігі
end;
Функцияны қолдану.
Turbo Pascal программалау тілінде функцияның жалпы құрылымы: Functionfunc_name(al,a2,..:typel):type_2; [Процедурада колданылатын айнъшалыларды сипаттау бөлімі] begin I
Процедураның негізгі бөлігі
end;
Мұндағы:
func_name - функция атауы. Функция атауында бос орын белгісі колданылмай символдар тізбегінен кұралады. Функция атауы әріптен басталуы тиіс (мысалы: sum, prl, user2);
al,a2 - косалкы программада колданылатын айнымалылар тізбегі. Негізгі программамен байланыс ретінде қолданылатын айнымалылар сипатталады;
type_l - айнымлылар типі (мысалы: x:integer; y:real және т.б.);
type2 - функцияның типі;
begin - функцияның басы;
end; - функцияның соңы.
Процедура мен функция айырмашылығын түсіну үшін екі бүтін санды қосу программасын процедура және функция түріндо күрастырайық. a) program kosul; var a: integer;
procedure kos (b, c: integer; var fe integer);
begin
k=b+c
end;
begin
kos(15,4,a); writeln('kos =', a:2) ; end.
o) program kosu2; var a: integer;
function kos(fc,c:integer): integer;
begin
kos:= b + с
end;
begin
a:=kos(15,4); writeln ('kos=', a: 2) end.
Екі программаның да нәтижесі бірдей болып экранға мынадай нәтиже шығады: kos =19 Мысалы:
Функцияларда рекурсия колдануға болады. Мұндай программаларды рекурсивті программалар деп атайды. Рекурсия дегеніміз ол косалкы программаның өзін-өзі шақыруы.
Дәріс №10
Тақырыбы: Символдар мен жолдар.
Дәріс жоспары:
Символдар
Жолдық өрнектер
Жолдық стандартты функциялар мен процедуралар
Кілт сөздер:үйретуші комплекс, процедура
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Басқа алгоритмдік тілдер тәрізді Object Pascal тілінде де текстік ақпараттарды өндеуге болады. Бұларға әр түрлі текстік құжаттарды өңдеу, үйретуші комплекс құру, автоматты редакциялау және т.б. енеді.
Текст деп жолдар тізбегін айтады
Жолдық тұрақты деп енетін символдардың саны 256-дан (0-255) артпайтын апостроф ішіне алынған символдар тізбегін айтады.
Айнымалы бөлігіне бейнеленуі: <айнымалы аты> : string [жолдың мах.ұзын.];
Мысалы: Var
Tex : string[29]; At: string[40]; Atay : string[275];
Мұндағы соңғы АТАҮ-дағы жол ұзындығы дұрыс керсетілмеген, себебі 275 >255, сондықган мұнда компьютер "кате" деп хабар береді. ЭЕМ-нің жадысынан жолдың алатын көлемін байт өлшемі арқылы алуға болады, ол үшін жолдың максимум үзындығына 1 қосу жеткілікті.
Жолдық орнектер.
Жолдық өрнектер алгоритмдік тілдегі арифметикалық ернектерге сәйкес келеді. Жолдық өрнек деп амал белгілері, жолдық тұрактылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан артпайтын тізбекті айтады. Жолға төмендегі амалдар пайдаланылады.
1. Жалғастыру амалы, ол карапайым "+" белгісімен белгіленеді. Бұл амал бірнеше жолдан және символдан бір жол құру үшін пайдаланылады. Мысалы:
Жолдық өрнек Нәтиже
'Ауыл'+'адамдары' ауыладамдары
'А'+'р'+'п'+'а' ... Арпа :
'Ал' + 'ма' + 'ты' Алматы
2. Салыстыру амалдары, олар: =, <>, >, >=, <, <= белгілерімен
белгіленеді. Жол мен жолды салыстыру олардың символдарын солдан оңға қарай біртіндеп бір-бірімен салыстырылғанда, оларға сөйкес кодтар салыстырылады. Егер жолдық символдары бірдей болса, онда кай жолдың символы көп болса, сол жол үлкен деп есептеледі.Егер өрнекте калғастыру жэне салыстыру амалдары болса, ең алдымен жалғастыру амалы, одан соң салыстыру амалдары орындалады. Жолдарды салыстыру • J
амалының нәтижесі логикалық шама TRUE немесе FALSE болатынын мысалмен келтірейік:
Өрнек Нәтиже
'SAM'='SAM' TRUE
'SAM'>'SAM' TRUE
'BBB'<'BB' FALSE
TAM1'>'TAM2' FALSE
3. Мешіктеу амалы, ол ":=" арқылы белгіленеді. Оның кызметі алгоритмдік тілдегі қызметімен сэйкес келеді. Бірақ мұнда, егер меншіктелетін мән ұзындығы типте көрсетілген ұзындыктан артық болса, онда артық символ алынып тасталады, мысалы: Бейнелеу Өрнек Нэтиже
a)A: string[6]; А:='ҚАЛАМ ҚАС;' 'КАЛАМ'
б)В: stting[3]; В:='ТАМАША;' ТАМ'
Көп жағдайларда өрнек құрамына жолдық ту_рақгылар, айнымалылар, тіпті символдар да енуі мүмкін екенін программа мысалымен келтірейік.
' 1-мысал.
Program BKI; Var L: char;
S : string[5]; R : string[25]; Begin ; >
Writeln (‘L,S-енгіз:’); readln(L,S); R := Ь+8+'біздікі'; Writeln(R)
END.
Егер программа орындалғанда L-re 'A', 'S'-ке 'класс' деген мән берсек, нәтижесінде 'А класс біздікі' сөзі шығады.
Жолдың символдарын олардың орналасу орындары /индексі/ бойынша табуға болады. Индекстің типі бүтін болады, ол айнымалы атауынан соң квадрат жақша ішіне алынып жазылады. Мысалы, . 'Алматы' болса, онда 8[2]='л S[4]='a' береді.
Жолдық стандартты функциялар мен процедуралар.
Object Pascal тілінде төмендегі стандартты функциялар пайдаланылады. 1. CHR(I) - I санына /кодына/ сәйкес символды береді. Мысалы, ' 'HR(1)='!’, CHR(250)='3', CHR(255)='h' және т.с.с.
2. ORD(S) - S символының кодын береді. Мысалы, ORD(!)=e ORD(3)=250, ORD(4)=255. -
2-мысал. Коды 1-ден 255-ке дейінгі сэйкес символдарды шыгаруга, А-дан Z-ке дейінгі латынның бас әріптерінің кодын анықгауға программа құрайық.
Program B12; :- -;
Var i, n : integer; s : char;
Begin
Writeln ('п-енгіз:'); Readln(n); For i:=l to n do begin
s:=chr(i); write(s) end; writeln; writeln; for s:='A' to 'Z' do begin i:=ord(s); write(i, ' ') end End.
Бұл программа бойынша, erep n-re 255 мөні берілсе, онда 1-ден бастап Ч-ге дейінгі барлық симводдар шығады және А-дан Z-ке дейін латынның баспа әріптерінің кодтары шыгады.
3. COPY(S,N,M) - S жолының N-1 орындагы символынан бастап М символды бөліп алады. S жолдық айнымалы, N, М - бүтін сандар. Егер жолдың үзындығынан артық болса, онда нэтижс бос орын болады
4. CONCAT(Sl,S2,Sn) - жолдарды реті бойынша жалғастырады " Мысалы, CONCAT('a\ Ъ\ 'c')='abc'.
5.LENGTH(S) - S жолдық айнымалысының мәніндегі симводдар санын береді. Мысапы, LENGTH('ABCD')=4, LENGTH('a'_f_M_D')=7
6.POS(S1,S2) - SI жолы S2 жолының бөлігі болатынын немесе болмайтымын анықтайды. Бүл функциядан шықкан нәтиже бүтін сан болады. Егер нәтиже нөлге тең болса, онда SI жолы S2 жолының болігі бола алмайды. Мысалы,
POS('ab ', 'abed') -I, l'OS('ab', 'array')=0.
3-мысалы. 100 ic дейінгі символдардан тұратын латын мәтініндегі дауысты дыбыстарының санын аныктайтын программа құрайық.
program daustydybystar; const c:stringll2]='aeyuioAKYUIO'; var a: string[100}; r,k,mirrteger; begin writeln('text engiz'); readln(a); n:=0; for k:=l to length(a) do if pos(a[k],c)>0 then n:=n+l; writeln('dauysty dybystar sany: ', n); writeln
End. ' °
7. UPCASE(CH) - латының кіші әріптерін оған сәйкес үлкен әріпке аударады. Мысалы, UPCASE('a')='A' UPCASE(‘q')='Q' UPCASE('b’)='B', UPCASE('c')='C'.
Жолдық процедуралар
Процедура деп атау берілген, арнайы амалдарды орындалатын, өзінше тәуелсіз программаны айтады. Процедура тақырыбынан және оның денесінен тұрады. Процедураны оның атауы арқылы шақырады.
1. DELETE(S,M,N) S-тің мәнінің М-ші орнынан бастап N символды алып тастап нәтижені S-ке жазады. ,
2.INSERT(S1,S2,N) - S2-нің N позициясынан бастап SI жолын S2 жолының арасына У орналастырады да, нәтижені S2-re жазады.
3.STR(I,S) - I санын жолға айналдырады да, S-айнымалысына орналасгырады.
4.VAL(S,I,cod) - сандық S жолын бүгін немесе накты санға аударады да, нәтижені І-ге жазады, cod-бүтін типті сан. Егер cod=1, онда аударғаны дұрыс, cod=0 қате, оның мәні І-ші кате кеткен орынды көрсететін санға тең.
Енді мысалдар қарастырайық.
4-мысал. N натурал саны берілген. N санының жазылуынан 0 мен 5 цифрларын алып тастап, қалған цифрлардың орнын өзгертпей жазатын программа құру қажет. Мысалы, 5090105060 санынан 916 саны алынуы
program cop; const n=15; var s:string[n];
irinteger; a.k:char; begin a:='0'; k=’5'; readln(s); for i:=1 to n do
if copy(s,I,1)-a then delete(s,i,1); for i:=l to n do if copy(s,I,1)=k then delete(s,i,1); writeln(s) End.
Дәріс №11.Тақырыбы: Массивтер.
Дәріс жоспары:
Бір өлшемді массивтер
Екі өлшемді массивтер
Кілт сөздер:массив, процедура,индекс
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Қарапайым типтер қатарына жататын стандартты (Integer, real) және қолданушылар (тізбектелген тип) типтерінде бір айнымалыны сақтау үшін, негізінен компьютер жадысының бір ғана ұяшығы қолданылады. Бірақ көптеген программалау есептерінің шешімін табу барысында әрбір элементтің деректерін жеке айнымалыға сактау орнына, оларды тізбектеп бір жерде сақтау анағүрлым тиімді болып табылады.
Бір өлшемді массивтер
Бір типтес берілгендерден құралып, барлық элементтеріне бір ортақ атау берілген жиынды массив деп атаймыз. Массив кұрылымдық типтер катарына жатады. Массив элементтері нөмірленеді. Массивтің әрбір элементіне индексін көрсету арқылы жұмыс істеуге болады. Массивке мысал ретінде векторларды қарастыруға болады. Егер массивке кестелік берілгендер жазылса (матрица), онда элементтері екі индекс бойынша нөмірленеді.
Массив сипаттамалары:
Типі - массив элементтерінің жалпы типі;
Өлшемі - массив индекстерінің саны;
• Шектелімі - әрбір индекстердің шектеу бойынша сәйкестігі;
• Пішімі - көлем және шектеулер жиындары. Массивтер элементтерімен жұмыс жасау барысында, массив атауынан кейін міндетті түрде тік жақшаға алынған индекс көрсетіледі. Индекс ретінде сандар қолданылады.
Массивтерді
қолдану үшін оларды типтер (type)
немесе
айнымалыларды сипаттау (var)
бөлімінде
хабарлану қажет.
Жалпы жазылу түрі:
type
Массив типінің атауы = array [индекс muni\ of элемент muni; var массив атауы : массив типінің атауы;
Мұндағы: Массив типінің атауы -массив элементтерінің
Жиынын
сипаттайды; Индекс типі
тізбектелген немесе
шектелген
типтерді
көрсету; Элемент
типі
– массив
элементтерінің
типін көрсету. .Берілген
мысалдағы массивтің әрбір элементімен
жұмыс істеу үшін, массив
атауы және
индексі
берілуі тиіс. Массив
индексі
тік жакшаға алынып жазылады, сол себепті
масивтің кез-к
елген
элементіне қатынас алуға болады.
Яғни берілген масивтің бірінші элементіне қатынас алу үшін массив атауынай кейін бірінші индексті көрсету қажет: А[1]; массивтің екінші элементіне қатынас алу үшін: А[2]; ал А массивінің сегізінші элементіне: А[8] көрсетіледі (сурет 1); Екі өлшемді массивтер.
Turbo Pascal программалау тілі бір өлшемді массивтермен қатар екі өлшемді жэне көп өлшемді массивтерді қолдануға мүмкіндік береді.
Екі өлшемді немесе көп өлшемді массивтермен жұмыс істеу үшін, олар сипаттау бөлімінде көрсетілуі тиіс.
Екі өлшемді массивті var бөлімінде сипаттаудың жалпы түрі; var
Массив атауы\ : array [a1..an,b1..bn\ of элемент muni; Екі өлшемді массивті type бөлімінде сипаттаудың жалпы түрі: type
Массив типініц атауы = array \al..an,bl..bn] of элемент muni;:
Var массив атауы : массив типінің.атауы;
Мүндағы, al..an,bl..bn - екі өлшемдімассивтің көлемі: аі және an - массив қатарының алғашқы және соңғы мәні; b және bn - массив бағанының алғашқы және соңғы мәні. А[n,m] - массивін сипаттау жолы:
var
A
: array
[1..n,1..m]
of
integer;
Type бөлімінде екі өлшемді
массивті сипаттау: Type
GR = array [l..n,l..m] of integer;
var A : GR;
Екі өлшемді массивті енгізу:
FOR i:=l TON DO .
FOR J:=l TOM DO
READ(A[I,J]);
Берілген жиырма бес элементтен түратын В[5,5] екі өлшемді массивке бөлшек сандар енгізіп, оларды дисплейге кесте түрінде шығару программасын қарастырыңыз.
Дәріс №12. Тақырыбы: Жиындар
Дәріс жоспары:
Жиын элементтерінің жазылу түрі
Жиындарға қолданылатын амалдар
Кілт сөздер: Set of, шама
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Жиын – белгілі бір қасиеттеріне сай іріктеліп, біртұтас қарастырылған жүйелі типті мәліметтер тобы. Жиындағы әр мәлімет жиынның элементтері деп аталады. Жиын элементтерінің типі (базылық тип) нақты типтен басқа, жай типтердің біріне жатуы тиіс. Жиын элементтерінің типі базалық тип деп қарастырылады. Базалық тип аралықпен немесе дараланып беріледі. Паскаль тілінде өрнектерде жиынның элементтері тік жақшаларға алынып жазылады: [‘a’,’b’,’c’,],[1,2,3,4], [‘а’..’2’].Егер жиында еш бір элемент болмаса, ондай жиын бос жиын болады да, [ ] белгіленеді. Жиынның типін сипаттау үшін set,of қызметші сөздері қолданылады.
Жазылуы: Type <типтің аты >=set of < жиынның элементтері>;
Var < айнымалылар>: <типтің аты>;
немесе
Var < айнымалылар>: of < жиынның элементтері>;
М ы с а л . Type Gaisan= set of (3,5,7,11,13,17);
Kun = set of 1..31;
Var Gs: Gaisan;
K : Kun:
ABC: set of ( ’ a’, ’e’,’i’,’j’) ; { *ABC жиыны типтер тарауында жарияланбай сипатталған*}
Мұнда GS, ABS, K жиын типті айнымалылар, оларға сипатауларында көрсетілген жиындарға кірмейтін элементтерден тұратын жиынды меншіктеу қателік тудырады. Жиынның элементтер саны 256 дан аспауы керек. Жиынның бір элементі бір байт орын алады.
Жиындарға қолданылатын амалдар
Паскальда жиындарға нәтижесі True немесе False болатын (=, <>,<=,>= ) және ішінде (in) амалдары қолданылады. Сонымен қатар жиындарға біріктіру (+), қию (*), айыру (-) амалдары жүреді.
«Теңдік» (=) амалы. Егер екі жиынның элементтері бірдей болса, онда жиындар тең деп есептеледі. Элементтердің орналасу реті әр түрлі болуы мүмкін.
[1,2,3,4,] = [ 1,2,3,4] - True
[5,6,7,8] = [5,6,7,8] - True
[‘a’,’b’,’c’]=[‘a’,’b’] - False
[‘a’..’z’]=[‘z’..’a’] – True
«Теңдік емес» (< >) амалы. Егер екі жиынның ең болмағанда бір элементі өзгеше болса, ондай жиындар тең емес деп есептеледі.
[1, 2, 3]<>[3, 1, 2,,4] – True
[‘a’..’z’]=[‘b’..’z’] – True
[‘c’..’t’]=[‘t’..’c’] – False
«Үлкен немесе тең» (>=) амалы. A>=B амалының нәтижесі ақиқат (True), егер В жиынының элементтері түгелдей А жиынында кездессе, кері жағдайда нәтиже жалған (False).
[1,2,3,4,] >= [ 2,3,4] – True
[‘a’..’z’]>=[‘b’..’t’] – True
[‘a’, ’x’]>=[‘c’, ‘z’, ’c’] – False
«Кіші немесе тең» (<=) амалы. A<=B амалының нәтижесі ақиқат (True), егер А жиынның элементтері В жиынында түгелдей кездессе, кері жағдайда нәтиже жалған (False) болады.
[1,2,3,4,] <= [ 2,3,4] – False
[‘d’..’h’]<=[‘z’..’a’] – True
[‘a’, ’v’]>=[‘a’, ‘n’, ‘v’] – False
«Ішінде» (in) амалы. Бұл амал қандайда бір шаманың көрсетілген жиында кездесетіндігін анықтайды, кездессе нәтижесі ақиқат (True) , әйтпесе жалған (False). Әдетте, бұл амал шартты операторларда пайдаланылады.
2 in [1, 2, 3] – True
‘p’ in [‘a’.. ‘n’] – False
X1 in [X0, X1, X2, X3] – True
«Біріктіру» (+) амалы. Екі жиынның қосындысы осы жиындардың элементтерінен тұратын үшінші жиын болып табылады.
[1, 2, 3]+[1, 4, 5] – [1, 2, 3, 4, 5]
[‘a’..’d’]+[‘e’..’z’] - [‘a’..’z’]
[ ]+[ ] – [ ]
«Қию» (*) амалы. Екі жиынның қиюы – осы екі жиында да кездесетін элементтерден тұратын үшінші жиын.
[1, 2, 3]*[1, 4, 2, 5] – [1, 2]
[‘a’..’z’]*[‘b’..’r’] – [‘b’..’r’]
[ ]*[ ] – [ ]
«Айыру» (-) амалы. Екі жиынның айырымы – екінші жиында кездеспейтін бірінше жиынның элементтерінен тұратын үшінші жиын.
[1, 2, 3, 4] - [3, 4, 1] – [2]
[‘a’..’z’]+[‘d’..’z’] - [‘a’..’c’]
[ X1, X2, X3]- [X4, X1] – [X2, X3]
Жиындар көбінесе шартты операторларда күрделі шарттарды ықшамды және көрнекті түрде жазуға пайдаланылады. Мысалы, мына операторлардағы шартты if (a=1)or(a=2)or(a=3)or(a=4)or then…былайша if a in [1..5] then … жазуға болады.
Мысал.
Сандардың жиыны келесі сандармен толтырылған: D1 жиыны – 2, 4, 6, 8 жұп сандармен; D2 жиыны – 0, 1, 2, 3, 5 сандарымен; D3 жиыны –1, 3, 5, 7, 9 тақ сандармен. Осыдан кейін жиындарымен біріктіру, айыру, қию амалдарын орындайды.
Дәріс №13. Тақырыбы: Жазбалар.
Дәріс жоспары:
Жазбаларға түсінік
Жазбаларды қолдану ережесі мен түрі
Кілт сөздер: record, with
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Жазба - бұл әртүрлі типті тіркелген сандар шамасынан тұратын тізбек, ол - өріс немесе жазудың компоненті деп аталады.
Жазба массив тәрізді бірқатар жеке компонентгерден құралады, бірақ жазу компоненті әртүрлі типті мәліметгер болуы мүмкін. Мысалы, < адрестік мәліметтер (индекс, кала, көше, үй номері. пәтер номері). Мұны жазба түрінде былай сипаттауға болады: Type adress = record Index : string [6]; City : string [20]; Street: string [20]; House, flat: integer End; Бүл мысалдан жазбаны былай анықтауға болады:
Туре <Жазба атауы> = record
1-өріс: тип атауы;
2-өріс: тип атауы;
...........................
n-ші өріс: тип атауы;
end;
Массивтерді бейнелегендегідей, жазбалар типі мен сәйкес айнымалыларды біріктіруге болады. Мысалы, екі студент тұралы мәліметті былай бейнелеуге болады:
var studl, stod2 : record fio.string [20]; fac : string [20];
group: string[3] end; Жазу түріндегі айнымалының алғашқы мәнін тұракты ретінде анықтауға болады.
Const атау: тип атауы = тұрақты мәні;
Тұрақты мән дегеніміз - өріс атауы мәні дөңгелек жақшага алынған тізім -элементтері. Тізім элементтері нүктелі үтірмен ажыратылып жазылады.
Мысалы, координаталар жүйесінің бас нүктесін анықтайтын жазу былай сипатгалады:
Type point = record
X,у,z:integer End;
Const or : point = (x:0; y:0; z:0);
Жазу компоненттеріне оралу өpic атауын нүкте арқылы көрсетудің көмегімен жүзеге асырылады. Мысалы, X айнымалысының типі адрес Гюлса, онда var директивасы былай бейнеленеді:
var x: adress;
болса, онда төмендегідей меншіктеулерді жазуға боладьі:
к.house:=52; x.street:='Сейфуллин'; x.city:='Алматы’; x.flat:= 135; undex:= '480050'
Енді мысал қарастырайық. Екі комплекс санның көбейтіндісі мен қосындысын табатын программа құрайық. Z1 = a1 + i*b1; Z2 = а2 + і * Ь2.
Program complexsan;
type compl=record re,im:real; end;
var zl,z2,s,p: compl;
begin write(' 2 complex san engiz '),
write('l-san eng’); readln(zl.re,zl.im);
write('2-san eng:'); readln(z2.re,z2.im); s.re:=zl.re+z2.re; s.im:=zl.im+z2.im; p.re:=zl.re*z2.re-zl.im*z2.im; p.im:=zl.re*z2.im+z2.re*z2.im; writeln{'s=',s.re:4:2,'+i*';s.im:4:2); write(rp=',p.re:4:2.'+i*'.p.im:4:2); write End.
Көпшілік жағдайларда, амалдарды орындауда тіркелгсн жазуды өрісімен шығару талап етілсе, онда белгілуді қысқарту үшін біріктіру операторын with пайдалануға болады.
Оның курылымы мынадай:
With <жазу атауы> do оператор;
Мұндай жағдайда Do қызметші сөзінен кейін жазылған операторда, көрсетілген жазудағы өріс атауы жазудың атаусыз және нүктесіз бейнеленеді.
Меншіктеу операторыyда тек өріс атауын ғана емес, сондай-ақ, жазу атауында пайдалануга болады: өрістің типі жазу болуы мүмкін. I Мысалы. '
Man = record Fio : record
Fam, im, otch : string [10]; End;
Data : record Day; [1..3]; Mes: [1 ..12]; God : integer End;
Pol :char;
Tclef: record Dom, rab :string [10]; End; End;
Дәріс №14.
Тақырыбы: Турбо Паскальдың графикалық мүмкіндіктері.
Дәріс жоспары:
CRT модулі
Графикалық жүйемен жұмыс жасау
Графикалық операторлардың негiзгi процедуралары мен функциялары
Кілт сөздер: Uses, модуль, режим, драйвер
Иллюстрациялық материал: Электрондық оқулық, слайдтар
Object Паскальдің мәтіндерді енгізіп-шығаруды жетілдіретін Бірнеше стандартты функциялары мен процедуралары бар, олар кітапханалық CRT (Cathode Ray Tube Display — электрондык сәулелік түтікшедегі дисплей) модулінде жинақталған.
Мәтіндік режімде адаптерлер экранға 40 немесе 80 жолдан тұратын 25, 43 тегі 50 жолдық мәтін шығара алады. Мәтіндік 1 режімде процедураларды пайдалану үшін алдымен CRT модулін іске қосу керек. Ол үшін программа тақырыбынан кейін арнайы жол жазылуы тиіс:
PROGRAM <программа аты>; USES CRT ;
CRT модулін пайдалана отырып, экранға шығарылатын символдардың түсін, мөлшерін, экранның түсін де өзгертуге болады.
Сонымен бірге экранда терезе жасауға, оны өшіруге, курсорды автоматты түрде жаңа орынға көшіруге, оның жаңа орнын анықтауға, жолдарды өшіруге жэне жалгастыруға т.б. көптеген әрекеттер істеу мүмкіндігі бар. Оларды орындайтын программалар процедура түрінде берілген. Біз олардың негізгілерін қарастырайық. Мәтіңдік режімді орнату мынадай стандартты процедура арқылы жүргізіледі:
Text Mode (Mode : Word);
мұндағы Mode — мәтіндік режім коды, оның мүмкін мәндері 7.2-кестеде көрсетілген. Мән тұрақты (BW40, СО40, ...) немесе режім реттілігі (0, 1, ...) түрінде беріледі. 7.2-кесте Компьютердің стандартты мәтіндік режімдері
Монитор |
Экран |
Түсте |
Адаптер |
Сегмен |
Режім |
Режі |
|
|
саны |
|
|
тұракты |
нөмі |
Ак-кара |
40x25 |
16/8 |
CGA.EG |
B800 |
BW40 |
0 |
Түрлі |
40x25 |
16/8 |
CGA.EG |
B800 |
CO40 |
1 |
Ак-кара |
80x25 |
16/8 |
CGA.EG |
B800 |
BW40 |
2 |
Түрлі |
80x25 |
16/8 |
CGA.EG |
B800 |
CO80 |
3 |
Ак-кара |
80x25 |
3 |
MA.EGA |
B800 |
Mono |
7 |
Монитор Экран Түсте Адаптер Сегмен Режім Режі
саны туракты нөмі
Ак-кара 40x25 16/8 CGA.EG B800 BW40 0
Түрлі 40x25 16/8 CGA.EG B800 СО40 1
Ак-кара 80x25 16/8 CGA.EG B800 BW40 2
Түрлі 80x25 16/8 CGA.EG B800 СО80 3
Ак-кара 80x25 3 MA.EGA B800 Mono 7
Монитор Экран Түстер Адаптер Сегмент Режім Режім
саны тұрактысы нөмірі
Ак-кара 40x25 16/8 CGA.EGA B800 BW40 0
Түрлі тҮсті 40х25 16/8 CGA.EGA В800 СО40 1
Ак-кара 80x25 16/8 CGA.EGA B800 BW40 2 Түрлі түсті 80х25 16/8 CGA.EGA B800 СО80 3 Ак-кара 80x25 3 MA.EGA B800 Mono 7
CRT кітапханасында Mode мәні үшін төмендегі тұрактылардың біреуі пайдаланылады. BW40 = 0; ақ-қара түс, 40x25
СО40 = 1; түрлі түсті, 40x25
BW80 = 2; ақ-қара, 80x25
СО80 = 3; түрлі түсті, 80x25 Мысальп
TextMode (CO80); TextMode (2);
CRT модулін пайдалана отырып, экранга шығарылатын символдардың түсін, мөлшерін, экранды да түсін өзгертуге болады.
Мәтіндік режімде символдар 16 түстің біріне (нөмірлері 0—15), экран реңі (фон) 8 түстің біріне (0—7) бояла алады. Монохромды (ақ-кара түсті) дисплей үшін екі ғана түс пайдаланылғанымен, оларда символдың ақшылдығын (айқын ақ немесе сұр реңді)өзгерту, кара экранға ақ символ немесе ақ экранға кара символ шығару, кейбір символдарды жыпылықтатып кою мүмкіндіктері бар. Экранға шығарылатын символдың түсін
TextColor (Color: Byte); процедурасы арқылы өзгертеді, мүндағы Color — түс номірі.
Экранный; түсін өзгерту үшін TextBackground (Color: Byte);
процедурасы
пайдаланылады.
Color
айнымалысының
мәні
ретінде түс аты немесе нөмірі
алынады (7.3-кесте).7.3-кесте Турбо
Паскаль
тіліндегі
түс
атаулары
және
олардың
нөмірлері
Tүc аты Нөмірі Tүc аты Нөмірі
Black (кара) 0 DarkGray (сүр) 8
Blue (көк"> 1 LiehtBlue (көкшіл) 9
GreenfiKacbm) 2 LiehtGreen Гакшыл 10
Cvan (көгілдігЛ 3 LiehtCvan Гакшыл 11
Red (кызыл) 4 LiehtRed (кызғылт) 12
Maeenta б LiehtMaeenta (ашык 13
Brown (коньго) 6 Yellow (сапы> 14
Iightgrav (боз) 7 White (ак) 15
Blink(жыпылықтау) 16
Мысалы:
TextColor(Yellow); TextBackGround(Red); Қызыл экранға сары символдар шығарылада; TextColor( Yenow+Blink);
Жыпылықтайтынсары символдар шығарылады; TextColor(6); Write(“экранға қоңыр символдар шығарылады"); Экран түсі мен символ түсі бірдей болса, мәтін көрінбей кетеді. Төмендегі программа әр түрлі түстерді пайдалану мүмкіндіктерін көрсетеді. program sbet;
uses Crt; >}
const col:array[1..15] of string[12] = ("қара көк\ "крю-1 жасыл", "көгілдір", "кызыл-күлгін-коңыр", "боз\ "сүр \" (көк \көкшіл\ "кегілдір\"қызғылт\
Дисплей экраны адам көзiне байқалмайтын нүктелерден (пикселдерден) тұратын тiк төртбұрышты аймақ. Қажеттi жерге белгiлi бiр түспен нүкте қойу арқылы әр түрлi бейнелер алуға, тiптi күрделi суреттер де салуға болады. Бiрақ ондай программалар аса үлкен көлемдi болар едi. Әдетте программалау тiлдерiнiң құрамына графикалық қарапайым денелердi:: нүктелер, кесiндiлер, төртбұшыштар, шеңберлер мен эллипстер жене олардың доғаларын т.с.с. жасауға арналған стандартты программалар мен функциялар кiредi.
Мұндай және тағы басқа графикамен жұмысқа арналған стандартты процедуралар мен функциялар Турбо Паскаль тiлiнде GRAPH модулiн құрайды. Оған 80-нен астам процедуралар мен функциялар және ондаған тұрақтылар мен мәлiметтер типi кiредi.
Графикалық жүйемен жұмыс жасау үшiн GRAPH модулiн iске қосу қажет:
Uses graph;
Осыдан соң программист бұл модульдегi барлық программаларды пайдалана алады. Алдымен, қандай да мүмкiн графикалық режимнiң бiрiн орнататын InitGraph процедурасы шақырылады:
InitGraph(var DriverVar, ModeVar:integer; PathToDriver:string);
Бүтiн типтi DriverVar, ModeVar айнымалылары 6–шi кестеден таңдалатын мәндерiне сәйкес драйвер мен режимдi орнатады.
6-шы кесте
Драйвер |
Режим |
Мүмкiндiк |
Файл |
CGA (1) EGA (3) VGA (9) Herc (8) |
CGAC0 , CGAHi EGALo, EGAHi VGALo, VGAHi HERCMONOHi |
320x200 (640x200) 640x200 (640x350) 640x200 (640x350) 720x348 |
CGA.BGI EGAVGA.BGI EGAVGA.BGI HERC.BGI |
Бiрiншi параметрдiң мәнi драйвердiң атымен немесе сәйкес цифрмен (ол жанында жақшада көрсетiлген) берiледi. Мысалы, келесi нұсқаулар:
DriverVar:=VGA; DriverVar:=9; эквиваленттi.
Егер сiз компьютердiң дисплейiнiң типiн бiлмейтiн болсаңыз мәнi нөлге тең стандартты Detect тұрақтысын пайдаланғаныңыз жөн:
DriverVar:= Detect; DriverVar:=0;
Бұл жағдайда InitGraph қажеттi драйвердi өзi анықтап, сәйкес келетiн экран режимiн орнатады.
Үшiншi PathToDriver параметрi GRAPH модулiнiң жолын көрсетедi, ал ол кезектi каталогта орналасқан болса, онда қатар екi апостроф қойса болғаны.
Графикалық жұмыстар аяқталғаннан соң графикалық модульден шығу керек:
CloseGraph;Ж
0,0
639,0
320,175
0,349 639,349
Негiзгi процедуралары мен функциялары
Нүктенi салу
PutPixel (X,Y:integer; Color: word);
процедурасымен орындалады. Мұнда Х,У- нүктенiң экрандық координаталары, Color - оның түсi. Color –дың мүмкiн мәндерi 7-шi кестеде көрсетiлген.
Мысалы, for I:=1 to 50 PutPixtl(I,1,Red); (немесе for I:=1 to 50 PutPixtl(I,1,4);) операторы экранның бiрiншi жолына қызыл түстi 50 нүкте шығарады. Нүктенiң түсi процедураның үшiншi параметрiмен көрсетiлген.
Басқа жағдайларда көбiне бейненiң, сол сияқты мәтiннiң түсi арнайы:
SetColor (Color); процедурасымен орнатылады.
Сызық (кесiндi ) салуға Line, LineTo, LineRel процедуралары қолданылады
Процедура |
Орындалу нәтижесi |
Line (x1, y1, x2, y2: integer) LineTo (x, y: integer) LineRel. (dx, dy: integer) |
(x1, y1) және (x2, y2) нүктелерiн қосатын кесiндi Кезектi нүктемен (Х, У) нүктесiн қосатын кесiндi (Х,У) координаталы нүктеден (Х+dx, У+dy) нүктесiн қосатын кесiндi |
Турбо Паскальда әр түрлi стилдi сызықтар сызуға болады. Стил орнату
SetLineStyle (LineStyle, Pattern, Thickness)
процедурасымен жасалады. Мұнда, LineStyle сызықтың стилiн, Pattern – жобасын (маскасын), Thickness – қалыңдығын көрсетедi. Бұл параметрлердiң мүмкiн мәндерi төмендегі кестелерде келтiрiлген. Егер стандартты стильдердiң бiрi таңдалатын болса Pattern параметiрiнiң мәнi 0 деп алынады.
