- •Дәрістік сабақтардың конспектісі
- •1 Дәріс. Кіріспе. Курстың мақсаты. Пәнді игеру негіздері, басқа пәндермен байланысы. Программалық жабдықтаудың даму тарихы Процедуралық бағдарламалаудан объектілі-бағытталған бағдарламалауға өту
- •Мұрагерлену
- •Полиморфизм және виртуалды әдістер
- •2 Дәріс. Объектілі бағдарланған визуальді программалаудың принциптері
- •2.1 Сурет – Интеграцияланған өңдеу ортасының түрі
- •2.2 Сурет – Жөндеудің диалогтық терезесі
- •2.3 Сурет – Компоненттер тақтасы қасиеттерінің сұхбаттық терезесі
- •3 Дәріс. Delphi программасының интегралданған өңдеу ортасы
- •2.4 Сурет – Компоненттің қасиеттеріне қатынау
- •Қосымшаның жұмыс істеу қабілетін анықтау
- •2.5 Сурет – Компонентке тиісті оқиғалар тізімі
- •4 Дәріс. Delphi программасындағы жобалар Object Pascal тілі
- •Негізгі түсініктер
- •Алфавит
- •Бағдарламаның құрылымы
- •Түсініктемелер
- •Мәліметтердің типтері
- •Операторлар
- •Компилятор директивалары
- •Дәрiс 5. Қосымша программалардағы қателерді жөндеу
- •Бүтiнсанды типтер
- •Литерлiк тип
- •Логикалық типтер
- •Мәлiметтердің нақты типтерi
- •Бақылау сұрақтары
- •Дәрiс 6. Delphi тіліндегі мәліметтердің типтері
- •Саналымды типтер
- •Интервалды типтер
- •Бақылау сұрақтары
- •Дәріс 7. Компоненттер палитрасындағы парақтар. Мәтіндік ақпараттарды енгізуге және бейнелеуге арналған компоненттер Деректердің құрылымдық типтері. Массивтер. Жиын.
- •Массивтер
- •Жиындар
- •Дәріс 8. Ақпараттардың басқа түрлерін бейнелеуге арналған компоненттер Деректердің структуралық типі. Жазбалар. Файлдар. Жазбалар.
- •Файлдар
- •9 Дәріс. Тақталар және сыртқы әрлеуге арналған компоненттер. Жүйелік диалогтар
- •10 Дәріс. Қолданушының графиктік интерфейсін жобалау Қарапайым операторлар.
- •11 Дәріс. Графика және мультимедиа
- •15. Дәріс Әртүрлі ақпараттық жүйелер класына арналған Delphi мүмкіндіктері.
11 Дәріс. Графика және мультимедиа
Программалау тілінің өзінде графикалық командалар келтірілмеген. Сондықтан, программалау графикасын псевдо-графика деп атайды. Графикалық ақпараттармен жұмыс істеу үшін Graph.tpu модулі пайдаланылады. Graph модулінде графикалық ақпараттармен жұмыс жасауға арналған командаларды сүйемелдейтін тұрақтылар, айнымалылар, типтер, процедуралар мен функциялар сипатталады.
Графикалық экранның мүмкіндігі экранға шығарылатын бейненің дәлдігімен анықталады. Паскаль тілінің графикалық экранының өлшемі: х осі бойынша 640 нүкте, у осі бойынша 480 нүкте. Паскаль тілі графикалық режиміндегі палитра 16 түстен құралған. Олар:
0- қара
1- сұр
2- жасыл
3- көгілдір
4- қызыл
5- күлгін
6- қоңыр
7- ақсұр
8- қара сұр
9- ашық көк
10- ашық жасыл
11- ашық көгілдір
12- алқызыл
13- қою қызыл
14- сары
15- ақ
Алғашқы 8 түс фонның және қарындаштың түсі ретінде, ал қалғандары тек қана қарындаштың түсі ретінде пайдаланылады. Суреттердің түсін өзгерткенде оның экранның түсімен бірдей болмауын ескеру қажет.
Паскаль тілінде сурет салуға арналған графикалық операторлар:
PutPixel(x,y,k)- координатасы (x,y) болатын k түсті нүкте салу
GetPixel(x,y)- координатасы (x,y) болатын нүктенің түсін анықтау
Line(x1,y1,x2,y2)- бастапқы нүктесінің координатасы (x1,y1), соңғы нүктесінің координатасы (x2,y2) болатын кесінді салу
Lineto(x,y)- курсор тұрған нүктеден координатасы (x,y) болатын нүктеге дейін кесінді салу
RecTangle(x1,y1,x2,y2)- диагональдарының төбелерінің координаталары (x1,y1) және (x2,y2) болатын тіктөртбұрыш салу
Bar(x1,y1,x2,y2)- ағымдағы түспен боялған, диагональдарының төбелерінің координаталары (x1,y1) және (x2,y2) болатын тіктөртбұрыш салу
Bar3d(x1,y1,x2,y2,h)- ағымдағы түспен боялған, биіктігі h белгілі параллелепипед салу
Circle(x,y,r)- центрінің координатасы (x,y), радиусы r болатын шеңбер сызу
Arc(x,y,
,
,r)-
центрінің координатасы (x,y), радиусы r
болатын
бұрышынан
бұрышына дейін доға салу.
Фон түстерін басқаруға және тағайындауға арналған процедуралар мен функциялар:
SetPalette процедурасы – берілген бояудағы түстің реттік нөмірі үшін стандартты бояудағы түсті өзгертеді
SetAllPalette процедурасы – бояудағы түстің барлық реттік нөмірін өзгертеді
GetPalette процедурасы – ағымдағы бояудың сипаттамасын береді
GetPaletteSize процедурасы – ағымдағы түстің мөлшерін, кодын береді
GetDefaultPalette процедурасы – стандартты тағайындалған бояудың сипаттамасын береді
SetColor процедурасы – графикалық немесе мәтіндік ақпаратты экранға шығаратын түсті тағайындайды
GetMaxColor процедурасы – ағымдағы түстің реттік нөмірін береді
GetColor процедурасы – ағымдағы түстің ең үлкен нөмірін береді
SetBkColor процедурасы – фонның түсін өзгертеді
GetBkColor процедурасы – ағымдағы фонның түсін береді
GetMaxColor процедурасы – фон түсінің ең үлкен нөмірін береді
Графикалық экранды басқаруға арналған негізгі командалар:
InitGraph - графикалық режимді тағайындау
Detect – графикалық драйверді автоматты түрде анықтау
CloseGraph – графикалық режимді жабу
SetGraphMode – жаңа графикалық режимді тағайындау
ClearDevice – графикалық экранды тазалау
ClearViewPort – терезені тазалау
GetMaxX – х осі бойынша ең үлкен координаталық мәнді анықтау
GetMaxY – у осі бойынша ең үлкен координаталық мәнді анықтау
Турбо Паскаль жүйесінде дыбыстық эффектілерді басқару үшін Sound, NoSound және Delay процедуралары қолданылады. Дербес компьютердің дыбыстық құралдарын іске қосу процедурасы: Sound(i:word). Мұндағы i-дыбыстың герцпен анықталатын жиілігі. NoSound процедурасы Sound процедурасымен берілген дыбыстық режимді тоқтатады. Delay процедурасы дыбысталу уақытын көрсетеді. Sound, NoSound және Delay процедураларының көмегімен сирена, сағат қоңырауы, құстардың ән салуы, музыкалық шығарма үзіндісі және т.б. дыбыстық эффектілерді шығаруға болады.
Әр 1 формасы бар. Сонымен қатар басқа да формалары болуы мүмкін, мысалы программа параметрін құруға арналған диалогты терезелер. Программа орындалуы кезінде терезелер көрінетін немесе көрінбейтін болуы мүмкін. Программист терезені құру, жою, көрсету, көрсетпеу және де терезелер арасындағы қатынасты орналастыруды басқарады. Бұл үшін әр түрлі әдістер, қасиеттер қолданылады.
Форманы басқару үшін Application және Screen (экран үшін) глобальды объектілер қолданылады.
Windows-та екі негізгі типі бар: бірқұжатты немесе SDI (Single Document Interface - бірқұжатты интерфейс) және көпқұжатты немесе MDI (Multiple Document Interface - көпқұжатты интерфейс). Құжат дегеніміз орталық объект. Delphi жүйесі үщін құжат-проект, мәтіндік процессор үшін- мәтіндік файл, графикалық редактор үшін – суреті барфайл.
Бірқұжатты 1 құжатпен жұмыс істей (объект) жұмыс жасай алады. Мысал ретінде NotePad блокиоты және Paint графикалық редактор. Бірқұжатты бірқұжатты өңдейді, бірақ бірнеші терезесі болуы мүмкін. Басты терезеден басқа экранда жұмыс процесі кезщінде әртүрлі элеменнтр пайда болуы мүмкін, мысалы диалогтық терезелер. Бірқұжатты мысал ретінде Dephi интегрирленген ортаны айтуға болады, ол көбіне 4 терезені көрсетеді: басты терезе; форма конструкторы, код редакторы және объект инспекторы. Сонымен қатар басқа да терезелер шақыруы мүмкін. Бірқұжатты әр терезе өзімен-өзі және басқа терезелерден бөлек болады.
Көпқұжатты бір уақытта бірнеше құжатпен жұмыс істей алады. Мысал ретінде текстік және кестелік Microsoft Word, Excel ,Corel Draw графикалық редакторын атауға болады.
Көпқұжатты формаларының құрылуы мен дара әрекеті бірқұжатты бірдей.
Көпқұжатты басты формасы болады, оның ішінде қосымша терезелер болуы мүмкін. Терезе түрі Form Style қасиетімен анықталады. Басты форма үшін Form Style қасиетінің fsMDIForm мәні болуы керек, ол қосымшаларға - fsMDIChild мәні . Form Style қасиетін оындалу кезінде орнатуға болады.
Көпқұжатты бас формасының басқару элементтері жоқ, мысалы жазулар, батырма және жол кестесі сияқты. Егер бас формаға батырманы орналастырсақ, Button ол қосымшатерезеден көрінеді.
Қолдану интерфейсіне құралдар панелінің менюі мен жол жағдайы кіреді. Қалғандары қосымша терезелерге орнату үшін қолданылады.
Символдық берілгендерді өңдеу
Осы кезге дейінгі дәрістерде біз тек қана сандық мәндермен жұмыс жасадық. Ал, қазіргі кездегі ЭЕМ-ң программаларының символ айнымалыларды өңдеуге және ЭЕМ-ң ішкі құрылғыларының арасында информация алмасуға толық мүмкіндігі бар.
Қарапайым есептерді шешкен кезде берілгендердің қарапайым типтері қолданылады. Дегенмен де, бір типті берілгендерді бір объектіге жазып, топтастыруға болады. Сондай-ақ, ұзындығы айнымалы болып келген бір типті шамалар тізбегін берілгендер файлы түрінде беруге болады және оларды әртүрлі программаларда пайдаланатын тасымалдағыштарда сақтауға болады. Мұнда құрама типтер негізгі роль атқарады. Құрама типтерге массивтер, жолдар, жиындар, жазулар және файлдар жатады. Енді осыларға кеңінен тоқталайық.
Символдық берілгендерді өңдеу үшін Паскаль программалау тілінде char (character–символ) қызметші сөзін қолданады. Char типтегі айнымалының мәні кез-келген жеке символдар, белгілер болады.
Егер программада мынадай белгілеу болса: a,b:char; - онда меншіктеу операторын a:=’k’; b:=’5’; a:=’*’ және т.с.с. түрінде жазуға болады. Мұндағы ’’ (апостроф) символдық мән екенін білдіреді.
Символдық берілгендер үшін =, <>, >, <, >=, <= қатынас белгілері пайдаланылады. Себебі барлық символдар, белгілер, цифрлар реттеліп орналасқан. Тізімде қай символ бұрын орналасса, келесі символға қарағанда оның коды кіші деп есептеледі. Әріптер алфавит бойынша орналасады. Мысалы: ‘a’<‘c’; ‘y’>‘x’; ‘2’>‘1’;
Әріптерді орналасу реті бойынша параметрлі қайталау операторының көмегімен экранға шығаруға болады:
Program Arip;
Var ar:char;
Begin
For ar:=‘a’ to ‘z’ do
Write(ar);
End.
Ал, алфавитті кері ретпен орналастыру керек болса, онда For операторына сәл өзгеріс енгізсе болғаны:
For ar:=‘z’ downto ‘a’ do
Символдық берілгендерді енгізудің төмендегідей ерекшеліктері бар:
Бос символ (пробел) Паскаль тілінде символ орнына жүретіндіктен, символдық айнымалылардың мәндері бос орынсыз жазылады және енгізу операторы read көмегімен енгізіледі;
Бір айнымалыға бір ғана символ меншіктелінеді;
Enter пернесін бос орын символы ретінде қабылдайды;
Shift, Рус, Caps, Лат – клавишаларын жеке символ ретінде қабылдайды да, мән орнына олардың кодын қабылдайды;
Символдық және сандық мәндерді енгізгенде, көбінесе Eoln стандартты функциясын пайдалану қолайлы. Бұл функцияның мәні жолдың соңы немесе мәндер беріліп болғанды білдіретін Enter клавишасы басылғанда ғана ақиқат болады да, басқа жағдайда жалған болады;
While not eoln do операторының алдында міндетті түрде readln операторы тұру керек.
Текстік мәліметтерді өңдеу
Текст деп жолдар тізбегін айтады. Паскаль тілінде жол символдар тізбегінен құралады. Паскаль тілінде жолдық тұрақтыларды да пайдалануға болады. Жолдық тұрақты деп енетін символдарының саны 256-дан аспайтын апостроф ішіне алынған символдар тізбегін айтады. Егер жолдың ішінде апострофты пайдалану қажет болса, онда оны екі апострофпен алмастырады.
Паскаль тілінде де басқа тілдердегі сияқты жолдық айнымалылар пайдаланылады. Жолдық айнымалылардың типін көрсету үшін тік жақша ішінде жолдың максимальды ұзындығы көрсетілген string қызметші сөзін қолданады. Жолдық айнымалының типі программаның тип бөлігінен кейін қарастырылады немесе тікелей айнымалы бөлігінде бейнеленеді.
Айнымалыларды сипаттау бөлігінде бейнеленуі:
Var <айнымалы аты>:string[жолдың максимальды ұзындығы];
Мысалы: Var text:string[25];
Atay:string[77];
Егер жолдың ұзындығы 256-дан көп болса, компьютер «қате» деп хабар береді.
Жолдық өрнектер. Жолдық өрнектер алгоритмдік тілдегі арифметикалық өрнектерге сәйкес келеді. Жолдық өрнек деп амал белгілері, жолдық тұрақтылар, айнымалылар және функция атауларынан құралған, ұзындығы 256 символдан аспайтын тізбекті айтады. Жолға төмендегі амалдар пайдаланылады:
Жалғастыру амалы. Ол қарапайым «+» белгісімен белгіленеді. Бұл амал бірнеше жолдан бір жол құру үшін пайдаланады.
Мысалы: 'Ал'+'ма'+'ты' нәтижесінде 'Алматы'.
Салыстыру амалдары. Жол мен жолды салыстыру үшін қолданады. Жол мен жолды салыстыру кезінде солдан оңға қарай біртіндеп символдардың кодтары салыстырылады. Егер жолдық символдары бірдей болса, онда қай жолдың символы көп болса, сол жол үлкен деп есептеледі. Егер жолда салыстыру және жалғастыру амалдары болса, онда ең алдымен жалғастыру амалы орындалады, одан соң салыстыру амалы орындалады.
Мысалы: ‘Tam’=‘Tam’ нәтижесі – true
‘Tam1’>‘Tam2’ нәтижесі – false
Меншіктеу амалы. Ол “:=” арқылы белгіленеді. Мұнда меншіктелетін мән ұзындығы типте көрсетілген ұзындықтан артық болса, онда артық символ алынып тасталады.
Мысалы: Егер айнымалыларды бейнелеу бөлігінде a:string[4] болса, онда a:=‘Алматы’ өрнегінің нәтижесі ‘Алма’ болады.
Өз кезегінде, қошымша терезеде (форма) көрінетін меню, құралдар панелі және жол күйі болмайды. Егер қосымша формада Main Menu компоненті болса, онда форма құру кезінде бұл меню басты форма менюімен бірігеді. Main Menu менюі мен бас және қосымша формалар бірігуі автоматты орындалғандықтан, Auto Merge қасиетіне False мәні берілуі керек.
Қосымша терезе менюінде осы құжатта бар және тереземен байланысты спецификалық операциялар үшін керек командалар болады. Проектте автоматты құру және екі форманың экранда көрінуі болады. Қалған қосымша өз терезелер (1, 2, т.с.с.) программаны әдіспен динамикалық құрылуы керек. Көбінесе Microsoft Word мәтіндік процессоры осылай жұмыс істейді. Мәтіндік файлды ашу кезінде оларға бөлек терезе құрылады.
Егер қосымша терезенің бірінші экземплярын құру қажет болса, онда проект файлынан сәйкес операторды алып тастау керек. Мұны проект файлын қолмен өзгертуге болады, бірақ проект параметрінің терезесін қолданған ыңғайлы. дұл кезде қошымша терезені терезелер тізіміне апарған жөн. Осылайша қосымша форманың класын сипаттау мүмкін.
Қарастырылған типтерден басқа консольд бар. Олар командалық жол қолданумен жасалады.
Интеграцияланған өңдіру ортасының құралдары
Интегрирленген өңдеу ортасының негізгі құралдарына мыналар жатады:
• Проект менеджері;
• Егізілген
• Проект
• Объект қоймасы;
• Анықтама жүйесі.
! Студент көрсетілген құралдарды жақсы білуі тиіс.
Беттері көрсетілген негізгі әдебиеттер
[31-38,356-382]
[25-70, 90-91]
Бақылау сұрақтары
1. Қандай екі негізгі типі белгілі?
2. Бірқұжатты неше терезе қолданылады?
3. Көпқұжатты
4. Консольді дегеніміз нені білдіреді?
5. Қандай интегрирленген өңдеу ортасының құрылдарын білесіз?
12- дәріс Қосымша программалардың сыртқы программалармен байланысы
Жолдық стандартты функциялар:
chr(i)- i санына (кодына) сәйкес символды береді. Мысалы: chr(1)=’!’, chr(250)=’з’ және т.с.с.
ord(s)- s символының кодын береді. Мысалы: ord(!)=1, ord(з)=250.
Copy(s,n,m)- s жолының n-1 орнындағы символдан бастап m символды бөліп алады.
Concat(s1,s2,sn)- жолдарды реті бойынша жалғастырады.
Length(s)- s жолдық айнымалысының мәніндегі символдар санын береді.
Pos(s1,s2) –s1 кіші жолы s2 жолының бөлігі болатынын немесе болмайтынын анықтайды. Бұл функциядан шыққан нәтиже бүтін сан болады.
Upcase(ch) – латынның кіші әріптерін оған сәйкес үлкен әріптермен алмастырады.
Жолдық процедуралар. Процедура деп атау берілген, арнайы амалдарды орындайтын, өзінше тәуелсіз программаны айтады, процедура тақырыбынан және денесінен тұрады. Процедураны оның атауы арқылы шақырады.
delete(s,n,m) – s мәнінің m-ші орнынан бастап, n символды алып тастап, нәтижені s-ке жазу;
insert(s1,s2,n) – s2-нің n позициясынан бастап s1 жолын s2 жолының арасына орналастырады да, нәтижені s2-ге жазады.
Str(i,s) – i санын жолға айналдырады да, s-айнымалысына орналастырады;
Val(s,i,cod) – сандық s жолын бүтін немесе нақты санға аударады да, нәтижені i-ге жазады, cod-бүтін типті сан.
Жиындар
Математикада жиынның анықтамасы қалай берілсе, Паскаль программалау тіліндегі жиынның мағынасы солай беріледі. Қандай да бір объектілердің ортақ нышандарымен біріктірілген және біртұтас бүтін ретінде ұсынылатын біртекті элементтердің жиынтығы жиын деп аталады. Басқаша айтқанда, жиын дегеніміз реттелмеген бір-бірінен ерекшелігі бар бір типті элементтердің жиынтығы. Жиындағы әрбір объект жиын элементі деп аталады. Жиын элементтерінің саны 255-тен аспауы қажет. Бірде-бір элементі жоқ жиын бос жиын деп аталады.
Жиындық типтерді бейнелеу үшін set және of қызметші сөздері қолданылады. Жалпы жағдайда жазылуы:
Type <атауы>= set of <элементтер типі>;
Элементтердің типі нақты сандар немесе элементтердің базалық типі болуы мүмкін. Элементтердің базалық типі дегеніміз типі char немесе byte болатын шектелген (0-ден 255-ға дейін), саналушы типтер. Жиынның әрбір элементі жадыдан 1 бит орын алады. Жиын элементтері тұрақты сандар, айнымалылар немесе арифметикалық өрнектер болуы мүмкін, олар тікжақшаға алынып жазылады. Мысалы:
S1:=[1,2,3];
S2:=[1,4,5,2];
S3:=[20,25,30..40];
C1:=['A','B','E'..'N'];
C2:=[X..Y];
C3:=[ ];
Жиындағы элементтердің орналасу ретінің өзгеруі немесе жиындағы бір элементтің бірнеше рет қайталануы жиынды өзгертейді: [1,2,3]=[2,1,3], [1,1,2,3]=[2,2,1,3].
Жиындарға қолданылатын амалдар
Енді жиындарға қолданылатын амалдарға тоқталайық. Олар:
жиындарды салыстыру
берілген мәннің жиында жататындығын анықтау
жиындардың бірігуі, қиылысуы, айырымы
ішкі жиынды анықтау.
Жиындарды салыстыру үшін ‘>’, ‘<’, ‘=’, ‘>=’, ‘<=’ қатынас белгілері пайдаланылады. Салыстыру нәтижесі true немес false мәнін береді.
Егер берілген екі жиынның барлық элементтері бірдей болса, онда бұл жиындар тең деп есептеледі. Мысалы: A:=[1,2,3], B:=[2,3,1] болса, онда A=B салыстыру нәтижесі true.
Егер берілген екі жиынның кем дегенде бір элементі өзгеше болса, онда бұл жиындар тең емес деп есептеледі. Мысалы: A:=[1,2,3], B:=[2,3,1], C:=[1,2,4] болса, онда A<>B салыстыру нәтижесі false, A<>C салыстыру нәтижесі true.
Егер A жиынының барлық элементтері B жиынының құрамына кіретін болса, онда A<=B өрнегінің нәтижесі true болады. Егер B жиынының барлық элементтері A жиынының құрамына кіретін болса, онда A>=B өрнегінің нәтижесі true болады.
Берілген мәннің жиында жататындығын анықтау үшін in логикалық операциясы қолданылады.
A:=[1,2,3];
If 2 in A then B:=A-[2] else B:=A+[2];
Өрнегінде then қызметші сөзінен кейін тұрған оператор орындалады.
Екі жиынның бірігуі (A+B) дегеніміз екі жиынның барлық элементтерінен тұратын үшінші жиын.
Екі жиынның қиылысуы (A*B) дегеніміз екі жиынның ортақ элементтерінен тұратын жиын.
Екі жиынның айырымы (A-B) дегеніміз екінші жиынға кірмейтін бірінші жиынның элементтерінен тұратын жиын.
Set типті мәліметтерді программада пайдаланудың айтарлықтай артықшылықтары бар: күрделі if операторын пайдалануды және есептің алгоритмін түсінуді жеңілдетеді, программаның көрнекілігі артады, программаның жадыда алатын орнын үнемдейді.
