Коммерциялық емес  акционерлік қоғам

Aлматы  энергетика және байланыс университеті

Инженерлік кибернетика кафедрасы 

 

 

Нысанды-бағытталған бағдарламалау

 5В070200 - Автоматтандыру және басқару мамандығы бойынша

оқитын студенттер үшін зертханалық жұмыстарды

орындауға арналған әдістемелік нұсқаулар

1-бөлім 

 

Алматы 2013

ҚҰРАСТЫРУШЫЛАР: Ешпанова М.Д., Ибрашева Ә.Т. Нысанды-бағытталған бағдарламалау. 1-бөлім: 5В070200 - «Автоматтандыру және басқару» мамандығы бойынша оқитын студенттер үшін зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар. -Алматы: АЭжБУ, 2013.– 57 б.

 

Әдістемелік нұсқау «Нысанды-бағытталған бағдарламалау» пәнінен зертханалық жұмыстарды орындауға арналған.

Терезелік қосымшаларды құру технологиясы қарастырылған. Ол   Windows операциялық жүйелерінде қолданылатын қосымшаның негізгі түрі.

Әрбiр зертханалық жұмыс бойынша қосымшаның бағдарламалар листингi келтірілген.

Без.- 13, кесте - 1, әдебиет көрсеткіші - 5 атау.

 

Пікір беруші: тех.ғыл.канд, доцент Абдрахманов А.А.

 

“Алматы энергетика және байланыс университеті” коммерциялық емес акционерлік қоғамының 2012 ж. баспа жоспары бойынша басылады.

 

©  “Алматы энергетика және байланыс университеті ” КЕАҚ, 2013 ж.

Мазмұны 

Кіріспе                  

4

1 Зертханалық жұмыс. Edit, Label, Memo, Button компоненттерін қолданып жоба құру   

5

2 Зертханалық жұмыс. List box Combobox компоненттерін қолдану  

12

3 Зертханалық жұмыс. RadioGroup ауыстырғыштар панелі және CheckListBox өшіргіштер тізімі

18

4 Зертханалық жұмыс. DrawGrid және StringGrid кестелерін қолдану және Timer компоненті

22

5 Зертханалық жұмыс. Меню құру. Main Menu  және Popup Menu компоненттері                     

28

6 Зертханалық жұмыс. Математикалық функциялардың графиктерін тұрғызу. Chart компонентінің көмегімен  диаграмма салу                 

34

А қосымшасы                                                                               

Б қосымшасы                                                                                           

В қосымшасы

Г қосымшасы

Д қосымшасы

Е қосымшасы

Әдебиеттер тізімі

40

42

45

47

50

53

56

  Кіріспе

«Нысанды-бағытталған бағдарламалау» пәні – табиғи-ғылыми пән, математикалық, инженерлік-техникалық есептерді шешу, АЖО-ның (автоматтандырылған жұмыс орны) қарапайым үлгілерін құрудан тұрады. 

Пәнді оқуда Delphi бағдарламалау ортасы қолданылады. Ол Windows тобының операциялық жүйесінде жұмыс істеуге арналған. Delphi-дегі бағдарлама қазіргі кезеңдегі визуалды жобалау технологияларының негізінде құрылады. Ал ол нысанды-бағытталған бағдарламалау идеяларын қолдануға негізделген.

Delphi бағдарламалау ортасы Windows-тың қосымшаларын салыстырмалы түрде оңай және тез құруға мүмкіндік береді. Сондықтан RAD (Rapid Application Developmentқосымшаларды тез құру ортасы) атағын алды.

Delphi бағдарламалау ортасының қондырылған компиляторы бар, ол бағдарлама мәтінін компьютер процессорына түсінікті машиналық кодқа аударады. Бүгінгі күнде бұл компилятор ең тез болып табылады және бағдарламалау ортасының жоғарғы өнімділігіне мүмкіндік береді. Delphi ортасының компиляторы автономды exe-файлдар (орындаушы файлдар) құрады. Сондықтан Dephi-де құрылған қосымшалар Delphi ортасы орнатылмаған компьютерде де  жұмыс істей береді.

Зертханалық жұмыстарды орындауға арналған ұсынылған әдістемелік нұсқаулар студенттер Delphi ортасында бағдарламаларды құру және визуалды бағдарламалау негіздерін меңгеру үшін құрылған.

Әрбір зертханалық жұмыстың сипаттамасы қажетті курстан алынған оны орындауға арналған ақпараттардан, ұқсас есепті шығару мысалынан тұрады.

Әрбір зертханалық жұмыс бойынша студент есептеме беріп және қорғауы керек.

  

1 Зертханалық жұмыс. Edit, Label, Memo, Button компоненттерін қолданып жобаны құру

 

Жұмыс мақсаты: терезелік қосымшаларды құру технологиясымен, Delphi ортасында бағдарламалау ерекшеліктерімен танысу.

 

1.1  Зертханалық жұмысқа тапсырма

 

Радиусы және биіктігі кез-келген болатын конустың көлемін есептейтін бағдарламаны Label, Edit, Button компоненттерін қолданып құру керек. Радиус және биіктік мәндері Edit компонентіне енгізіледі, ал конус көлемінің мәні Label компонентіне шығарылады. Есептеу Button компонентін басқан кезде ғана орындалуы керек. 

1.1.1 Терезелік қосымшаны құру процесін орындаудың қадамдар бойынша сипаттамасы.

1)       Delphi ортасын жүктеу.

2)       Жаңа папка құру, онда жобаға қатысты барлық файлдар орналасады. Әрбір жаңа жоба үшін бөлек папка құрылады. Жаңа папканы жобаға қатысты файлдарды сақтау кезінде де құруға болады.

3)       Компоненттер палитрасының Standard  бетінен Form1  формасына алты  компонент орнатасыз: Label1, Label2, Label2 - белгі, Edit1, Edit2 – енгізу жолдары, Button1 – батырма.

Label1, Label2, Label3 – компоненттері мәтіндік ақпаратты көрсетуге арналған. Белгі үшін негізгі қасиеті – ол Caption. Label1 белгісіне «Конус радиусын енгізіңіз» мәтінін жазыңыз, Label2 белгісіне – «Конус биіктігін енгізіңіз», Label3 белгісінде конус көлемі көрсетіледі.

Edit1, Edit2 компоненттерінің көмегімен сәйкесінше конус радиусының және биіктігінің мәтіндері енгізіледі. 

Button1 – батырмасы – оқиғаны құру компоненті. Батырмаға басқан кезде конус көлемін есептеу жүргізіледі.

4)       Болашақ бағдарламаның сыртқы түрін қалыптастыру. Бұл үшін  Объектілер инспекторын қолданып форманың және онда орналасқан объектілердің қасиеттерін орнату керек. Кезекпен  форма және Label1, Label2-ні активтендіріп, Объектілер инспекторын қолданып Caption қасиеттерін таңдаңыз. Бұл форма қасиетінің мәнін – ‘Конус көлемін есептеу’, ал Label1, Label2 үшін сәйкесінше Caption мәнін ‘Конус радиусын енгізіңіз’ және  ‘Конус биіктігін енгізіңіз’ деп орнату керек. Caption қасиетінің мәні символдық жолдар болып табылады.

5)       Edit1 және Edit2 компоненттері үшін Text қасиеті негізгі және  символдық жолдарды енгізуге арналған. Бұл қасиетінің мәніне ‘ ‘ бос жол орнату керек. 

6)       Button1 компоненті үшін  Caption қасиетінің мәні ретінде ‘Фигура көлемі’ деп орнату керек.

7)       Бағдарлама жазу кезеңі. Болашақ бағдарлама Edit1 және Edit2 енгізу жолдарына радиус және биіктік мәндері енгізілгеннен кейін Счет батырмасына шерткеннен кейін ғана конус көлемін есептеуі керек. Button1 батырмасы үшін OnClick оқиға өңдегішін жазу қажет. Оқиға өңдегіштің денесін құру үшін Button1 батырмасын бір шертсе жеткілікті. Денесіне конус көлемін есептеу кодын орнатса жеткілікті:

 

procedure TForm1.Button1Click(Sender: TObject);

var r,h,v,s: real;

begin

      r:=strtofloat(edit1.Text);

      h:=strtofloat(edit2.Text);

      s:=pi*sqr(r);

      v:=s*h/3;

  label3.Caption:='площадь основания равна'+floattostrf(s,ffgeneral,7,2);

  label4.Caption:='объем конуса равен'+floattostrf(v,ffgeneral,7,2);

end;

 

Осымен бағдарламалау кезеңі аяқталады.

8) Бағдарламаны орындауға жіберер алдында үнемі сақтап отыру қажет. Жобаны сақтау үшін бас менюдің File – Save All командасын орындағанда модульді сақтау терезесі пайда болады. Құрылатын жоба үшін дайындалған папканы тауып, ашу керек. Егер ол жоқ болса, онда жаңадан жасап, ашу керек.  «Имя файла» өрісіне модуль атын енгізіңіз. Келісім бойынша модуль аты Unit1 болады. Өзгерту енгізбей сақтаңыз. Осыдан кейін жоба файлының диалогтық терезесі пайда болады. Келісім бойынша жоба файлына Project1 аты беріледі.

Жоба сақталғаннан кейін Run батырмасын басу арқылы орындауға жіберіледі.

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

Ал мәндер тізімін шығару үшін (алдыңғы нәтижелерді көруге болады) нәтижелерді Memo компонентіне шығару керек. Сонымен қатар жобада батырманы қолданып қосымша терезесін жабуды қарастыруға және форманы құру кезінде бағдарлама жұмыс істейтін бастапқы мәндерін енгізуді де қарастыруға болады. 

Memo компонентінің негізгі қасиеттері және әдістері:

Lines: Tstrings – бұл қасиетінің көмегімен компонентті толтыруды  редактор терезесінде орындауға болады.

Жолдарда жұмыс барысында (динамикалық) тағы да қосуға болады –   Add  және Insert әдістерінің көмегімен:

Add (const S:string) әдісі тізім соңына s жаңа жолды қосуға арналған;

Insert (Index:integer; const s:string) әдісі – s жолын нөмірі Index көрсеткішімен анықталған орынға қояды.

Move (CurIndex,NewIndex:integer) және Exchange (Index1,Index2:integer) әдістері жолдарды коллекция ішінде орын ауыстыруға арналған. 

IndexOf (const:string) әдісі жолдың нөмірін анықтауға арналған.

1.1.2 Memo компонентін қолданып  бағдарламаны құру жоспары.

1)       1.1 суретке сәйкес формаға компоненттер экземплярын орналастыру;

2) «Объемы фигур» батырмасын активтендіру және оқиғаны өңдеу денесіне кодты орналастыру:

r:=strtofloat(edit1.Text);

h:=strtofloat(edit2.Text);

s:=r*r*pi;

v:=s*h/3;

memo1.Lines.Add('объем конуса равен:  '+floattostr(v));

memo1.Lines.Add('площадь основания  равна:  '+floattostr(s));

3) «Закрыть» батырмасын активтендіру және кодты орналастыру: Close;

 

1.1 сурет 

4) форманы құру кезінде бағдарлама жұмыс істейтін бастапқы мәндерін енгізу үшін форманың OnCreate оқиғасы қолданылады. Бұл оқиғаның денесін құру үшін форманы екі рет шертіп келесі жолдарды орнату керек:  

procedure TForm1.FormCreate(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

memo1.Clear;

end;

5) жаңа жобаны сақтау File Save All. Жаңа папка құрып, «Фигуры» атын беріп, папканы ашып, оған бағдарлама кодын және жобаны сақтап, жобаны орындауға жіберу керек.

  

1.2  Тапсырма нұсқалары

Delphi ортасында жеке тапсырмада келтірілген фигура үшін қосымша құру қажет:

- таңдалған компонентке жеке тапсырмада келтірілген барлық бастапқы берілгендердің мәнідерін пернетақта (клавиатура) арқылы енгізу (бұрыштың мәндері градус арқылы беріледі);

- берілген фигураның төменде көрсетілген және бастапқы берілгендер ішіне кірмейтін барлық көрсеткіштерін есептейді;

- Memo  компонентіне барлық бастапқы берілгендерді және есептеулер нәтижесін шығарады және бұрыштың мәндері градус арқылы көрсетілуі тиіс;

- Memo компонентінде тапсырма шарттары көрсетіледі және бұл компонент экранда «Условие» батырмасын басқанда ғана пайда болуы керек.

Үшбұрыштың тапсырмалары үшін келесі белгілеулер қолданылады:

a, b, c үшбұрыш жақтары;

А, В, С – үшбұрыштың сәйкес жақтарына қарама-қарсы орналасқан бұрыштары;

ha, hb, hc үшбұрыштың сәйкесінше a, b, c жақтарына түсірілген биіктіктері;

pS үшбұрыштың жарты периметрі және ауданы;

r, R ішінен және сыртынан жүргізілген шеңберлердің радиустары.

Ромб тапсырмалары үшін келесі белгілеулер қолданылады:

 a – ромбтың жағы;

А, В, С, D – ромб бұрыштары;

d1, d2 – ромб диагональдары

pS – ромбтың периметрі және ауданы.

Трапеция тапсырмалары үшін келесі белгілеулер қолданылады:

a, c –трапецияның бүйір жақтары;

b,d жоғарғы және төменгі жақтары;

А, В, С, Dбұрыштары;

h, e биіктігі және диагоналі;

pS – периметрі және ауданы.

Жалпы түрдегі төртбұрыш тапсырмалары үшін келесі белгілеулер қолданылады:

a, b, c, d жақтары;

А, В, С, Dбұрыштары,

e1,e2 –диагональдары.

Формаға фигураның қалған көрсеткіштерін есептеп шығару керек.

1.       Үшбұрыштың a және b жағы, олардың арасындағы C бұрышы берілген.

2.       Үшбұрыштың b жағы,  А бұрышы және сыртқы сызылған шеңбердің R радиусы берілген

3.       Үшбұрыштың a, b, c жағы берілген.

4.       Үшбұрыштың ұштарының xa, ya, xb, yb, xc, yc координаталары берілген.

5.       Ромбтың А бұрышы және d1 диагоналі берілген.

6.       Ромбтың  a жағы және A бұрышы берілген.

7.       Ромбтың  d1 диагоналі S ауданы берілген.

8.       Ромбтың  d1 және d2 диагональдары берілген.

9.       Ромбтың  a жағы және d1 диагоналі берілген.

10.   Трапецияның a, b, c, d жақтары берілген.

11.   Трапецияның a, b, d жақтары және h биіктігі берілген.

12.   Трапецияның a, b, d жақтары және A бұрышы берілген.

13.   Трапецияның a, b жақтары, h  биіктігі және e диагоналі берілген.

14.   Төртбұрыштың a,b,c,d төрт жағы және e1 диагоналі берілген.

15.   Төртбұрыштың a, b, d жақтары және A және B бұрыштары берілген.

1.3  Терезелік қосымшаларды құру кезеңдері

1.3.1 Delphi ортасы

Delphi ортасы жұмыс үстелінда бөлек орналасқан бірнеше терезелер жиыны болып табылады:

1)       атаулар жолы, меню тақтасы, аспаптар тақтасы және компоненттер палитрасынан тұратын  бас терезе;

2)     объектілер инспекторы;

3)     объектілер ағашы;

4)     формалар дизайнері;

5)     бастапқы мәтін редакторының терезесі.

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

1.3.2 Форманы құру қезеңінде орындалатын негізгі операциялар.

1)        Құру қезеңінде (қосымша түрін құру) компоненттер палитрасынан қажетті компоненттер таңдалады да, олар формада орналастырылады: тіртуірдің сол жақ батырмасымен компонентке шертіп, оны форманың қажетті жеріне  шертіп қою керек.

2)        Компонент түрі, оның өлшемі және мәндері компонент қасиеттерін береді. Компонентке қажетті қасиетін беру үшін Объектілер инспекторы терезесінде  Рroperties бетін қолдану керек. Бұл бет екі бағаннан тұрады: сол баған қасиеттер атауынан, ал оң жағы – қасиеттің нақты мәндерінен тұрады. Объектілер инспекторы терезесі тінтуір шертпесімен ерекшеленген компоненттің ақпаратын ғана көрсетеді. Жолдар қарапайым және күрделі қасиеттерін көрсетеді. Қарапайым қасиеттерге бір мәнмен анықталатындар ғана жатады – санмен, символдар жиынымен және т.б. Күрделі қасиеттер  мәндер жиынынан құралады, мұндай қасиеттер атауының сол жағында  «+» символы көрсетіледі.

3)        Кез-келген қосымша формасында қолданушы және бағдарлама арасындағы интерфейсті (байланыс) қамтамасыз ететін компоненттер бар. Мұндай компоненттерді негізгі деп атайды. Негізгі компоненттерге келесіні жатқызуға болады:

-  Label  (метка-белгі) - мәтінді шығару өрісі;

-  Edit (енгізу өрісі) - мәтінді түзету өрісі;

-  CheckBox (выключатель-өшіргіш) -  тәуелсіз таңдау батырмасы;

-  Button (батырма) - командалық батырма;

-  RadioButton (ауыстырғыш) -  тәуелді таңдау батырмасы;

-  ComboBox - құралған таңдау тізімі.

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

Бағдарлама қандай да бір жұмысты орындау үшін келесі кезең –бағдарламалау кезеңіне өту керек.

 

1.3.3 Бағдарламалау кезеңінің негізгі ерекшеліктері.

1)       Әрбір компонент нақты бір оқиғалар жиынына реакция береді.  Компонент қандай оқиғаға реакция беретінін білу үшін  оны формадаға түріне тіртуірмен шертіп ерекшелеп, объектілер инспекторының events бетіне өту керек.

2)       Бет екі бағаннан тұрады. Бірінші бағанда компонент реакция беретін оқиғалардың аттары, екіншісін программист толтырады және құрылған оқиғаны өңдегіштің аттарынан тұрады.

Оқиғаны  өңдегіш – ол процедура және нүкте арқылы бөлінген екі бөліктен тұратын атауы. Бірінші бөлігі құрылатын форма класының атауы. Екінші бөлігі бағдарламалаушымен немесе Delphi ортасымен құрылады. Егер Delphi автоматты түрде өңдегіш атауының екінші бөлгін берсе, онда ол компонент атауы және оқиға атауының бірігуінен тұрады, Оn жұрнағынсыз.

Мысалы:

procedure TForm1.Button1Click(Sender: TObject);

Мұнда  TForm1   - құрылатын форманың класс атауы, Button1Click - оқиғаны  өңдегіштің атының екінші бөлігі, оны Delphi автоматты түрде өзі қояды және ол Button1 атты компонентті тінтуірдің сол жақ батырмасымен шертсе процедура орындалатынын білдіреді. TObject типтегі Sender көрсеткіші OnClick оқиғасын құрған компонентке бағытталған (яғни Button1) деген сілтемеден тұрады.  

 3) Оқиғаны  өңдегіш атауын бергеннен кейін оқиғаны өңдегіштің  денесін құру керек. Егер Button1 батырмасын шертсек, онда код редакторының терезесіне өңдегіштің денесі енгізіледі:

procedure TForm1.Button1Click(Sender: TObject);

begin

 

end;

Процедура денесі begin …end резервтелген сөздерімен шектеледі, олардың ортасына өзіміздің операторларымызды орнатамыз.  

  4) Бағдарламалаушы орнататын операторлар арасында формада орналасқан компоненттердің қасиеттерін өзгертетін де операторлар болуы мүмкін. Бұл  компонент қасиеттерін құру барысында Объектілер инспекторы арқылы ғана емес және де бағдарлама көмегімен өзгертуге болатынын білдіреді. Компонент қасиеттерін бағдарлама орындау барысында өзгертуді қасиеттерді динамикалық өзгерту деп атайды.

Ескерту: Delphi-дегі әрбір компоненттің келісім бойынша (по умолчанию) оқиғасы бар. Әдетте бұл оқиғалар үшін көп жағдайда өңдегіштер құрылады. Мысалы, көптеген компоненттер үшін мұндай оқиға – OnClick.

Форма терезесінің құрамы мен код редакторының терезесінің арасында үзілмейтін байланыс бар, ол Delphi-мен қатаң бақыланады. Мысалы, формаға компонент орнату бағдарлама кодын автоматты түрде өзгертеді.

Жоғарыда көрсетілгендей, label  - мәтінді шығару өрісі, editмәтінді түзету өрісі. Мәтіндік ақпарат string типімен сипатталады.  Компьютер бұл жолды символдар жиыны түрінде қабылдайды, сондықтан символдармен арифметикалық операцияларды орындай алмайды. Мәтінді бүтін санға түрлендіру үшін StrToInt функциясы қолданылады. StrToInt(Edit1.Text) өрнегі  Edit1 терезесінде орналасқан символдық түрдегі ақпараттың бүтін сандық түрін береді. Мәтінді бөлшек санға түрлендіру үшін StrToFloat функциясы қолданылады.

 

1.4  Бақылау сұрақтары

 

1.4.1     Қарапайым терезелік қосымшаны құрудың негізгі кезеңдерін атаңыз.

1.4.2     Delphi ортасының терезелерін атаңыздар.

1.4.3     Оқиға өңдегішті қалай құру керек?

1.4.4     Жобалау кезеңінде орындалатын негізгі операцияларды атаңыз.

1.4.5     Бағдарламалау кезеңінің негізгі ерекшеліктерін атаңыз.

1.4.6     Бағдарламаны орындау барысында компоненттің қасиеттерін өзгертуге бола ма және ол қалай аталады ?

1.4.7     Мәтінді бүтін санға қалай түрлендіруге болады?

 

2 Зертханалық жұмыс. ListBox ComboBox компоненттерін қолдану

 

Жұмыс мақсаты: Listbox, Combobox компоненттерін меңгеру және қолдану.

 

2.1 Зертханалық жұмысқа тапсырма

 

2.1.1 Тінтуір көмегімен тізімнен түстің түрін таңдағанда және экрандағы батырманы басқанда түстің атауын көрсететін және RGB форматында түстің кодын көрсететін бағдарламаны құру. Бағдарлама «Close» батырмасын басқанда өз жұмысын тоқтатады.  

Бағдарламаны құру жоспары:

1)       2.1 суретке сәйкес формаға компоненттер экземплярын орналастыру;

2)       Жобаны сақтау File Save All. Жаңа папка құрып, «Справочник» атауын беру, папканы ашу;

 

2.1 сурет 

3)       бағдарлама кодын және жобаның атауын беріп сақтау, мысалы, Unit1.pas және Project1.dpr;

4)       компоненттердің 2.1 кестедегі қасиеттерін орнату;

2.1 кесте

Ерекшеленген

объект

Object Inspector терезесінің беті

Қасиет атауы/ оқиға атауы

Әрекеттер

BitBtnl

Properties

Caption

Батырманың атын орнату: «Выход»

 

 

Kind

bk Close

Label 1

Properties

Caption

 «Справочник записи цвета в формате RGB» жазуын енгізу

Label2

Properties

Caption

 «Цвет Формат RGB» жазуын енгізу

Label3

Properties

Caption

Түстің атауын және кодын жою

 

5)       бағдарламаны iске қосып, содан соң «Выход» батырмасын шертіп жобаның терезесiн жабу.

6)       ListBox1 объектiні ерекшелеп, Items қасиетiн тауып, оның оң жағында орналасқан үш нүктесi бар батырманы шерту. Орнатылған редактордың пайда болған терезесiнде (2.2 суреттi қара)  түстердiң атауын  әрбiр жаңа жолға енгiзу;

 

 

 

 

 

 

 

 2.2 сурет

7)       терiлген мәтiнді color.txt атауымен сақтау, ол  үшін  тіртуірдің оң батырмасын басып Save режимін таңдау керек. Орнатылған редактордан шығуы үшiн ОК батырмасын шерту керек;

8)       List Box1 өрiсiне тіртуір курсорын орнатқанда не істеу қажет екені жайлы ақпарат пайда болу үшін Hint (хабарлама мәтіні) қасиетін қолдану қажет - «жолды ерекшелеп батырманы шерту керек», Showhint (хабарламаны көрсету қажет пе) ListBox1 объектісінікі;

9)        «Перевести» батырмасын екі рет шертіп активтендіру және  OnClick оқиға өңдегішінің денесіне келесі кодты орнату керек:

сase   listBox1.ItemIndex of

0: Label3.Caption:= 'черный  000000';

1: Label3.Caption:=' белый  FFFFFF' ;

2: Label3.Caption:=' красный  FF0000' ;

3: Label3.Caption:=' зеленый  00FF00' ;

4: Label3.Caption:= 'бирюзовый 00FFFF';

5: Label3.Caption:=' синий 0000FF';

6: Label3.Caption:=' фиолетовый  FF00FF';

7: Label3.Caption:= ' желтый  FFFF00';

8: Label3.Caption:= 'коричневый  996633';

9 : Label3.Caption:= ' оранжевый  FF8000';

10: Label3.Caption:= ' липовый  8000FF';

11: Label3.Caption:=' серый  А0А0А0';

end;

10)  жобаны толығымен сақтап, орнатуға жіберіп және оны тестілеу керек.

 

2.1.2  Бүтінсанды массивте максимал және минималды элементті табу және олардың орнын ауыстыру. СomboBox компонентін қолдану құрама енгізу жолы. Массив элементтері СomboBox1 компонентіне енгізіледі. Ввод батырмасын басқанда мәліметтер жадыға енгізіледі. Максимал және минимал элементтері орын ауысқан жаңа матрица элементтері СomboBox2 компонентіне шығарылады.

 

2.3 сурет

Бағдарламаны құру жоспары:

1)       жаңа жоба үшін жаңа папка құру, мысалы, Combobox;

2)       жаңа жобаны ашу;

3)       Standard бетінен Form1-ге 2.3 суретіне сәйкес компоненттерді орнату: button1, button2, ComboBox1, ComboBox2;

4)       ComboBox1, ComboBox2 үшін DropDownCount қасиеті 10-ға тең;

5)       іnterface бөлімінде қолданылатын массив және айнымалылар сипатталады: a:array[1..10] of integer; i, min, max, imax, imin:integer;

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

           i:=0;

           comboBox1.Clear;

           combobox2.Clear;

           combobox1.TabOrder:=0; 

6)     «Ввод» батырмасы үшін оқиға өңдегішті жазу:

begin

combobox1.items.add(combobox1.Text);

i:=i+1;

a[i]:=strtoint(combobox1.Text);

combobox1.SetFocus;

end;

7)     «Решение» батырмасы үшін оқиға өңдегішті жазу:

procedure Tform1.Button2Click(Sender: Tobject);

var k:integer;

begin

  max:=a[1];

  maxi:=1;

  min:=a[1];

  mini:=1;

  for k:=2 to 10 do

     begin

       if max<a[k] then

          begin

            max:=a[k];

            maxi:=i;

          end;

       if min>a[k] then

          begin

            min:=a[k];

            mini:=i;

          end;

      end;

       a[maxi]:=min;

       a[mini]:=max;

 

       for k:=1 to 10 do

       combobox2.Items.Add(inttostr(a[k]));

       combobox2.DroppedDown:=true;

end;

8)     жобаны сақтап оны орындауға жіберу керек.

     2.2 Тапсырма нұсқалары

List Box және СomboBox компоненттерін қолданып келесі тапсырмалар үшін қосымшалар құрыңыз:

1)       «Чепуха» ойынын құру: үш тізімнен сөздер алынады - әрқайсысынан бір бірден және олардан сөйлем құрылады. Мысалы, тізім 1 – аңдар атауы, тізім 2 – етістіктер, тізім 3 – одағай (наречие).

2)       Мемлекеттер тізімін құру. Мемлекетті таңдағанда астанасы және оның назар аударатын жерлерінің атауы пайда болуы керек.

3)       Listbox компонентіне 10 элементтен тұратын массивтің мәндерін енгізу керек. Егер оннан көп енгізілсе, онда хабарлама шығуы керек. Бұл массивті кері ретпен басқа тізімге жазу керек. Бұл жазуды тек парольді дұрыс енгізген жағдайда ғана орындауға болады.

4)       Тiзiмге массив элементтерiн енгiзіледі. Элементтi таңдағанда оның жұп немесе тақ екені көрсетіледі. Егер элемент жұп болса, онда жазу жасыл түсті, басқа жағдайда ақшыл көк болуы керек.

5)       Сағаттық белдiктердiң кестесiн құру: Алматыдағы уақыт көрсетілгенде тiзiмнен таңдалатын әлемнің астаналарындағы және iрi қалалардағы уақытты анықтау керек.

6)       Достар және жолдастардың туған күндерінің, шоқжұлдыздарының тізімін құру. Тізімнен ақпан айында дүниеге келгендерді ерекшелеу керек.

7)       Әлеуметтік сұрау өткiзу. Студент тегін (Edit) енгізеді, ал ол тізімге енеді. Келесі сұрақ қойылады: «Сіз кітап оқығанды жақсы көресіз бе?» Жауаптар: иә немесе жоқ. Егер «иә» болса, онда «жарайсың» жазуы шығады, егер «жоқ болса», онда – «оқу керек». Кім оқиды, кім оқымайтынын көрсететін бағдарламаны құру керек. Сонымен қатар студенттердің қанша пайызы кітап оқығанды жақсы көреді, қаншасы қарама-қарсы екенін санау керек.

8)       Футболшы қай командада ойнайды және бұл команданың елін көрсететін бағдарламаны құру керек.

9)       Сағаттық белдiктердiң кестесiн құру: Гринвич бойынша уақытпен айырмашылықтары бойынша. Бiр сағаттық белдiкте орналасқан елдерді шығару керек. Сағаттық белдiк енгiзiледi.

10)  Сіздің бес досыңыздың туған күнi 2000, 2005, 2010 жылдары аптаның қай күніне түскенін анықтайтын бағдарлама жазу керек.

11)  Топты таңдағанда осы топтың студенттерiнiң тiзiмi шығуы керек. Оқытушыны таңдағанда осы оқытушы ғылыми жетекшісі болатын студенттердiң тiзiмi шығуы керек.

12)  Кино жанрларының фонотекасын құру.

13)  Сіздің бес курстасыңыздың туған күнi 2003, 2006, 2011 жылдары аптаның қай күніне түскенін анықтайтын және көрсетілген шоқжұлдызға қайсысының туған күні сәйкес келетінін көрсететін бағдарлама жазу керек.

14)  Жыл атауын енгізгенде жақында оның қай жылы болатынын көрсететін бағдарлама жазу керек.

15)  Музыка жанрларының фонотекасын құру.

 

2.3 ListBox, ComboBox тізімдері

Delphi ортасында әртүрлі тізімдермен жұмыс істеу жиі кездеседі. Мысалы, Memo мәтіндік редакторының жолдарының тізімі.  Listbox стандартты компоненті (компоненттер палитрасының Standard беті) жолдар тізімін экранда тікелей көрсетуге арналған. 

2.3.1 ListBox компонентінің негізгі қасиеттері:

- ItemIndex: integer; тізімдегі ерекшелеген элементтің индексін анықтайды. Элементтерді нөмірлеу нөлден басталады. Егер ерекшелеген элемент болмаса, онда бұл қасиеттің мәні -1 болады.  Бұл қасиетпен бағдарламаны орындау кезеңінде ғана жұмыс істеуге болады;

- Item: Tstrings; тізім элементтерін береді;

- MultiSelect:Boolean; тізімнің бірнеше элементін ерекшелеуге болатынын көрсетеді: егер мәні True болса, онда бұл ерекшелеу мүмкін, кері жағдайда тек бір элементті ғана ерекшелеуге болады;

- Selected[Index:integer]:Boolean; егер i-ші элемент ерекшелеген болса, онда Selected[i] True-ға тең, кері жағдайда -  False. Бұл қасиетпен бағдарламаны орындау кезеңінде ғана жұмыс істеуге болады;

- Sorted:Boolean; тізімдегі жолдар алфавиттік ретпен сұрыпталуы керек не жоқ екенін көрсетеді;

- Clear; тізімнің барлық элементтерін жояды.

СomboBox – құрама енгізу жолы. Компоненттер палитрасының – Standard беті.

Құрама енгізу жолы СomboBox – ол Edit  енгізу жолының және List Box тізімінің мүмкіндіктерінен біріккен. Сыртқы түрі Edit сияқты, бірақ  оң жақ бөлігінде қосымша төменге бағытталған батырмасы бар.

Егер осы осы батырмаға шертсе құлама тізім пайда болады. ListBox-тан негізігі ерекшелігі – тізімге жаңа элементтер енгізу, активті элементті көрсету мүмкіндігі.

СomboBox компонентінде MultiSelect қасиеті жоқ, сондықтан көптеп таңдау мүмкіндігі жоқ.

 

2.3.2 Сombo Box-тың негізгі қасиеттері:

- ItemIndex: integer;  тізімдегі ерекшелеген элементтің индексін анықтайды. Элементтерді нөмірлеу нөлден басталады. Егер ерекшелеген элемент болмаса, онда бұл қасиеттің мәні -1 болады.  Бұл қасиетпен бағдарламаны орындау кезеңінде ғана жұмыс істеуге болады;

Item: Tstrings; тізім элементтерін береді;

- DropDownCount: integer; ашылатын тізімде көрсетілетін элементтердің максимал санын көрсетеді;

- DroppedDown:Boolean; ашылатын тізім осы мезетте көрсетіліп тұрғанын, тұрмағанын көрсетеді. Бұл қасиетпен бағдарламаны орындау кезеңінде ғана жұмыс істеуге болады;

- Sorted:Boolean; тізімдегі жолдар алфавиттік ретпен сұрыпталуы керек не жоқ екенін көрсетеді.

- Text: String; қолданушы енгізген немесе таңдаған жолдың мәтінінен тұрады;

- Clear; тізімнің барлық элементтерін жояды.

      

     2.4 Бақылау сұрақтары

      

     2.4.1 ListBox неге арналған?

     2.4.2 List Box компонентінің негізгі қасиеттерін атаңыз.

     2.4.3 СomboBox негізгі қасиеттерін атаңыз.

     2.4.4 List Box немесе СomboBox компоненттерінің қайсысында MultiSelect қасиеті бар?

     2.4.5 List Box және СomboBox компоненттерінің қай қасиеттерін тізім элементтерін береді?

 

3 Зертханалық жұмыс RadioGroup ауыстырғыштар панелі және  CheckListBox өшіргіштер тізімі

 

Жұмыс мақсаты: Check ListBox және Radio Group басқару компоненттерімен танысу және қосымша құруда оларды қолдануды үйрену.

 

3.1 Зертханалық жұмысқа тапсырма

 

3.1.1 Аудитория нөмірін таңдағанда онда орнатылған қолданбалы компьютерлік бағдарламалардың тізімін көруге мүмкіндік беретін қосымша құру керек.

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

Бағдарламаны құру жоспары:

1)       Формаға 3.1 суретіне сәйкес компоненттерді орнату.

2)       RadioGroup1 объектісін ерекшелеу, Items қасиетін табу, оның оң жағындағы үш нүктелі батырманы шерту; Қондырылған редактордың пайда болған терезесінде әрбір жолға аудитория атауларын енгізу. Caption қасиеті «аудитории» сөзіне тең. CheckListBox1 объектісін ерекшелеу, Items қасиетін тауып қолданбалы бағдарламалар тізімін енгізу.

  

3.1 сурет

3)       RadioGroup1 екі рет шертіп активтендіру және OnClick оқиға өңдегішіне келесі кодты орнату:

memo1.Clear;

for I:=0 to 10 do checklistbox1.checked[i]:=false;

case radiogroup1.ItemIndex of

0:begin checklistBox1.Checked[2]:=true;

        checklistBox1.Checked[3]:=true;

        checklistBox1.Checked[4]:=true;

        checklistBox1.Checked[10]:=true;

        checklistBox1.Checked[11]:=true;

        memo1.Lines.Add('Желательно установить

                                     дополнительные   программы');

   end;

1:begin checklistBox1.Checked[1]:=true;

        checklistBox1.Checked[3]:=true;

        checklistBox1.Checked[5]:=true;

        checklistBox1.Checked[6]:=true;

        checklistBox1.Checked[8]:=true;

        checklistBox1.Checked[9]:=true;

        checklistBox1.Checked[10]:=true;

        memo1.Lines.Add('Эта аудитория занята весь день');

   end;

2:begin checklistBox1.Checked[2]:=true;

        checklistBox1.Checked[3]:=true;

        checklistBox1.Checked[4]:=true;

        checklistBox1.Checked[6]:=true;

        checklistBox1.Checked[8]:=true;

        checklistBox1.Checked[9]:=true;

        memo1.Lines.Add('Можно установить ТурбоС++');

   end;

3:begin checklistBox1.Checked[5]:=true;

        checklistBox1.Checked[7]:=true;

        checklistBox1.Checked[9]:=true;

        memo1.Lines.Add('В этой аудитории проводятся

                                        занятия по     спецдисциплинам');

   end;

4:begin checklistBox1.Checked[1]:=true;

        checklistBox1.Checked[2]:=true;

        checklistBox1.Checked[8]:=true;

        checklistBox1.Checked[3]:=true;

        memo1.Lines.Add('Это - аудитория преподавателей');

   end;

end;

4)        «Закрыть» батырмасын активтендіру және OnClick оқиға өңдегішіне келесі жолды орнату:

 close;

5)       File Save All арқылы жаңа жобаны сақтау. Жаңа папка құру, «Аудитория» атауын беру, папканы ашу. Бағдарлама кодын және жобаға атау беріп сақтау, мысалы, Unit1.pas және Project1.dpr. Қосымшаны орындауға жіберу.

 

     3.2 Тапсырма нұсқалары

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

2.        Адамды қысқаша сипаттайтын қосымша құру: мінезі (сангвиник, холерик және т.б.), шашының түсі, жасы, бойы. Атауы-жөнін Edit енгізу жолына енгізу керек. Алынған ақпаратты Memo өрісіне шығару керек.

3.        Бес сұрақтан тұратын тест құру. Әрбір сұрақтың 4 жауабы болсын. Тест нәтижесін шығару: қанша дұрыс жауап және дұрыс емес жауап, қанша дұрыс жауап пайызы %.

4.        Гүл шоғы композициясының типін және оның гүлдерін таңдауға арналған гүл дүкенінің қосымшасын құру.

5.        Мейрамхана мәзірін құру.

6.        Әлемнің бір бөлігін таңдағанда оның бес қаласын көруге мүмкіндік беретін қосымша құру. RadioGroup және ListBox қолдану.

7.        Банкомат жұмысын үлгілеу.

8.        Кадрлар бөлімінің қосымшасын жазу: қызметі бойынша қызметкерлер фамилиясын шығару және көрсетілген қызмет түрі бойынша қызметкерлер санын шығару.

9.        Типі таңдалатын ұшақтың бағыт орнын, рейс нөмірін көрсететін қосымша құрыңыз.

10.   Зодиак таңбасының атауы таңдалғанда, осы белгімен туылған адамдар жайлы ақпарат беретін бағдарлама жазу.

11.   Көрсетілген тауар жайлы және оның қай дүкендерде сатылатыны  жайлы ақпарат беретін бағдарлама жазу.

12.   Автожанармай станциясының жұмысын үлгілеу.

13.   Басты жол белгілерін демонстрациялайтын бағдарлама жазу: жол бер, кіруге тыйым салынады, басты жол, қозғалысқа тыйым салынады.

14.   Әртүрлі геометриялық фигураларды демонстрациялайтын бағдарлама жазу.

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

 

3.3 RadioGroup ауыстырғыштар панелі және CheckListBox өшіргіштер тізімі

 

RadioGroup ауыстырғыштар панелі Standard бетінде орналасқан. Ол бірнеше нұсқаның біреуін таңдауға арналған.

Ауыстырғыштар панелінің негізгі қасиеттері:

Columns:integer; ауыстырғыштар орналасатын бағандар санын көрсетеді. Келісім бойынша бағандар саны 1.

ItemIndex:integer; ерекшеленген ауыстырғыштың реттік нөмірін анықтайды. Нөмірлеу нөлден басталады. Ауыстырғыштардың біреуі де ерекшеленбеген болса, онда қасиеттің мәні -1 болады.

Item:Tstrings; ауыстырғыштардың атауларының тізімінен тұрады.

Пернетақта немесе тіртуір көмегімен жаңа ауыстырғышты ерекшелегенде орындалатын келесім бойынша оқиға OnClick болады.

CheckListBox өшіргіштер тізімі  Additional бетінде орналасқан.

Егер RadioGroup ауыстырғыштар панелінде тек бір ғана ауыстырғыш басылатын (таңдалытын) болса,  онда CheckListBox өшіргіштер тізімінде әрбір өшіргіштің үш күйі болады:

- қосылғанөшіргішке «галочка» символы орнатылады;

- өшірілген өшіргіш бос;

- нейтралдыөшіргішке сұр түсті «галочка» символы орнатылады.

Өшіргіштер тізімінің негізгі қасиеттері:

Checked[index:integer]:boolean; Index индексі бар өшіргіштің күйінен тұрады. Индекстеу нөлден басталады. Егер i-ші өшіргіш қосылып тұрса, онда Checked[iмәні true, қалған жағдайда false болады.

Items: Tstrings; өшіргіштер атауларының тізімінен тұрады.

AllowGrayed:boolean; нейтралды үшінші күйді қолдануға рұқсат береді немесе тыйым салады, cbGrayed.

 

3.4 Бақылау сұрақтары

3.4.1 RadioGroup және CheckListBox компоненттерінің айырмашылығы неде?

3.4.2 CheckListBox компонентінің әрбір өшіргіші бола алатын күйлерін атаңыз.

3.4.3 CheckListBox компонентінің қай қасиеті ауытырғыштардың үшінші күйін қолдануға рұқсат береді немесе тыйым салады?

3.4.4 Бірде бір ауыстырғыш ерекшеленбесе ItemIndex қасиетінің мәні қандай?

3.4.5 СheckListBox1.Checked[3]:=true; командасы нені білдіреді?

 

4 Зертханалық жұмыс. DrawGrid және StringGrid кестелерін және Timer компонентін қолдану

 

Жұмыс мақсаты: DrawGrid, StringGrid және Timer басқару компоненттерінің негізгі қасиеттерімен танысу және қосымша құруда оларды қолдануға дағдылану.

4.1 Зертханалық жұмысқа тапсырма

4.1.1 Жұлдызды аспан құру.

Жұлдызды аспан құрғанда жұлдыздар жылтылдап тұруы керек.  «Жылтылдау» эффектісі келесідей:  таймер іске қосылады және өшіріледі, яғни таймер арқылы бағдарламаны үзу болғанда жылтылдау орындалады. Жұлдыздар кестеде тура санағанда қандай да бір санның квадраты болатын орында орналасқан. Оның шарты:   if frac(sqrt(k))=0. Аспан түсіқара, ал жұлдыздар ақ.

Бағдарламаны құру жоспары:

1)       Формаға 4.1 суретіне сәйкес DrawGrid, Timer компоненттерін және үш батырманы орнату.

2)       DrawGrid 1 объектін ерекшелеп, келесі қасиеттерді орнату:

DefaultColWidth – 3;

DefaultRowHeight 3;

DefaultDrawing  - false;

GridLineWidth 0;

ColCount 175;

RowCount 105;

BorderStyle BsNone.

3)       Timer компонентін ерекшелеп,  interval қасиетінің мәнін 100-ге теңестіру.

4)       Start батырмасын активтендіріп,  оқиға өңдегішке келесі команданы жазу керек:

    timer1.Enabled:=true;

таймер қосылады жұлдыздар жыпылықтайды.

5)       Stop батырмасын активтендіру және оқиға өңдегішке келесі команданы жазу:

               timer1.Enabled:=false;

Таймер өшіріледі де жұлдыздар жылтылдауды тоқтатады.

6)        «Закрыть» батырмасын активтендіру және OnClick оқиға өңдегішіне келесі жолды орнату:

               close;

7)       Таймерді  активтендіру және оқиға өңдегішке келесі командаларды жазу:

DrawGrid1.Canvas.Brush.Color:=clBlack; {бояу жаққышты қара түске

батырамыз}

for i:=0 to 174 do

   for j:=0 to 104 do

       begin

   area:= DrawGrid1.CellRect(j,i); {ұяшықты ерекшелейміз}

   drawGrid1.Canvas.FillRect(area);{аспанды бояймыз}

        end;

        k:=-1;

DrawGrid1.Canvas.Brush.Color:=clWhite;

                  for i:=0 to 174 do

        for j:=0 to 104 do

              begin

              inc(k);

              if frac(sqrt(k))=0 then   {ұяшықтың жұлдыз болу шарты}

                         begin

                               area:= DrawGrid1.CellRect(j,i);

{area облысына ағымдық ұяшықтың күйі беріледі}   

         drawGrid1.Canvas.FillRect(area);{жұлдызды ақ түске бояймыз}

         end;

         end;

Ескерту: ұяшықтың тіктөртбұрышын білдіретін CellRect функциясын шақырғанда ең бірінші баған индексі, содан кейін жол индексі көрсетіледі. Бояу әрқашан жаққыштың ағымдық түсімен боялады. Жаққыш- Сanvas.Brush.Color.

 

4.1 сурет

4.1.2 Бүтінсанды матрицада А(5,5) екінші және төртінші бағандардың орнын ауыстыру қажет.

Бұл екі әдіспен шешіледі: Cells және Rows қасиетін қолдану.

 

Бағдарламаны құру жоспары:

1)       4.2 суретіне сәйкес Additional бетінен екі StringGrid компонентін және  Standard бетінен үш Button компонентін  орнату.

2)       StringGrid компонентінің қасиеттеріне келесі мәндерді орнату:

ColCount - 5;

RowCount - 5;

FixedCols – 0;.

FixedRows – 0;

Options – goEditing – true;

3)   Button1, Button2, Button3 компоненттері үшін суретте көрсетілгендей Caption қасиеттерінің мәнін беру.

4)   Start1 батырмасын активтендіру. Есеп Cells қасиетінің көмегімен шешіледі. Келесі OnClick оқиға өңдегішін құру керек:

var i,j:integer;

begin

 for j:=0 to 4 do

        if (j<>1)and (j<>3) then

          for i:=0 to 4 do

            StringGrid2.Cells[j,i]:=StringGrid1.Cells[j,i];

         for i:=0 to 4 do

            begin

              StringGrid2.Cells[1,i]:=StringGrid1.Cells[3,i];

              StringGrid2.Cells[3,i]:=StringGrid1.Cells[1,i];

            end;

end;

5)       Start2 батырмасын активтендіру. Есеп Cols қасиетінің көмегімен шешіледі. Келесі OnClick оқиға өңдегішін құру керек:

begin

 stringgrid2.Cols[0]:=stringgrid1.Cols[0];

 stringgrid2.Cols[1]:=stringgrid1.Cols[3];

 stringgrid2.Cols[2]:=stringgrid1.Cols[2];

 stringgrid2.Cols[3]:=stringgrid1.Cols[1];

 stringgrid2.Cols[4]:=stringgrid1.Cols[4];

end;

6)       Екінші кестені тазалау үшін Clear батырмасын активтендіру. Келесі OnClick оқиға өңдегішін құру керек:

var i,j:integer;

begin

    for i:=0 to 4 do

      for j:=0 to 4 do

      StringGrid2.Cells[j,i]:=' ';

7)       Алдыңғы есептердегідей Close батырмасын активтендіру.

8)       Жобаны StringGrid папкасында сақтау: File – Save All. Жобаны орындауға жіберу.

4.2 сурет

4.2 Тапсырма нұсқалары

1.        «Жұлдызды аспан» тапсырмасындағы функцияны өзгерте отырып әртүрлі өрнектерді алу.

2.        DrawGrid компонентін қолданып жылтылдайтын жазу шығару.

3.        DrawGrid компонентін қолданып фейерверк құру.

4.        Фирма жұмысшылары жайлы мәліметтер массиві берілген: тегі, аты, әкесінің аты, мекенжайы (көше, үй, пәтер) және жұмысқа орналасу уақыты (айы, жылы). Екінші массивке осылардың ішіндегі 5 жылдан аса жұмыс істегендердің мәліметтерін жазу керек.

5.        Пойыздардың жүру кестесі жайлы мәліметтер сақталатын массив берілген: пойыз нөмірі, атауы (қайдан-қайда, мысалы, Орел-Курск), стансаға келу уақыты, жүру уақыты (сағат, минут).  Пойыздар күнде келеді деп санайық. Берілген уақыт бойынша қай пойыздар стансада тұрғанын  анықтау керек (уақытты пернетақтадан енгізу).

6.        Ұшақтардың ұшуы жайлы мәліметтер сақталатын массив берілген: рейстің бағытының аты, рейс нөмірі, ұшақ типі. Пернетақтадан енгізілген бағытқа сәйкес келген рейс нөмірлері мен ұшақ типтерін экранға шығару. Егер ондай рейстер болмаса, онда дисплейге сәйкес хабарлама шығару қажет.

7.        Тауарлар жайлы мәліметтер сақталған массив берілген: тауар атауы, тауар сатылатын дүкен атауы, тауардың бағасы теңгемен. Экранға атауы пернетақтадан енгізілген дүкенде сатылатын тауарлар жайлы ақпарат шығару керек. Егер ондай дүкен болмаса, онда экранға сәйкес хабарлама шығару қажет.

8.        Төлеушілер және қабылдаушылар жайлы мәліметтер сақталған массив берілген: Төлеушінің есеп шоты, төлеушінің аты, қабылдаушының есеп шоты, қабылдаушының аты, аударылатын сома. Экранға пернетақтадан енгізілген төлеушінің есеп шотынан алынған сома жайлы ақпарат шығару керек. Егер ондай есеп шот болмаса, онда экранға сәйкес хабарлама шығару қажет.

9.        Келесі мәліметтер берілген: тегі, аты, зодиак белгісі, туған күні (үш саннан тұратын массив). Тегі пернетақтадан енгізілген адам туралы ақпарат шығару.

10.   Келесі мәліметтер берілген: тегі, аты, зодиак белгісі, туған күні (үш саннан тұратын массив). Аты пернетақтадан енгізілген зодиак белгісінде туған адамдар туралы ақпарат шығару.

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

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

13.   Зауыт шығаратын тауарлар жайлы мәліметтер сақталған массив берілген: тауар атауы, салмағы, түсі, данасы. Экранға пернетақтадан енгізілген түсі бойынша тауарлар туралы ақпарат шығару.

14.   Университет мамандықтары жайлы ақпарат сақталған массив берілген: факультет, мамандықтар атауы, оқу түрі, оқу жылы. Экранға пернетақтадан енгізілген оқу түрі бойынша мамандықтар туралы ақпарат шығару.

15.   Университет мамандықтары жайлы ақпарат сақталған массив берілген: факультет, мамандықтар атауы, оқу түрі, оқу жылы. Экранға пернетақтадан енгізілген факультетке қатысты мамандықтар туралы ақпарат шығару.

4.3 DrawGrid және StringGrid компоненттері

DrawGrid  компоненті Additional панелінде орналасқан, ал Timer  компоненті - System панелінде.

DrawGrid компонентінің негізгі қасиеттері:

DefaultColWidth – кесте бағанының ені;

DefaultRowHeight кесте бағанының биіктігі;

DefaultDrawing кесте ұяшықтарын көрсету;

GridLineWidth – тор сызығының қалыңдығы;

ColCount бағандар саны;

RowCount жолдар саны;

BorderStyle жиек рамкасының күйі;

Бағандарды және жолдарды нөмірлеу нөлден басталады.

Timer компонентінің негізгі қасиеті: интервал.

StringGrid кестесі компоненттер палитрасының Additional бетінде орналасқан. StringGrid кестесі екі өлшемді ақпаратты көрсетуге арналған, мысалы, матрица элементтері. Кестеде кез-келген жол және бағандар саны болуы мүмкін. Егер қажетті жол және бағандар саны белгілі болса, онда жол және бағандардың атауын беруге болады.

StringGrid кестесінің негізгі қасиеттері:

Col:longint; активті ұяшық орналасқан бағанды береді. Қасиет бағдарламалау кезеңінде ғана жұмыс істейді;

ColCount: Longint; бағандар санын береді;

Row:Longint; активті ұяшық орналасқан жолды береді;

RowCount: Longint; кесте жолдарының санын береді;

FixedCols: integer; саны белгілі бағандар санын береді. Келісім бойынша бір баған;

FixedRows: integer; саны белгілі жолдар санын береді;

Cells[j,i]: string; i-ші жол және j-ші баған қиылысында орналасқан ұяшықпен жұмыс. Бағандарды және жолдарды нөмірлеу нөлден басталады.

Кесте жұмысы үшін Options қасиеті қолданылады. Бұл қасиет флагтарды береді. Мысалы, Options қасиетінің goEditing флагының мәні true болса, онда ұяшықтардың мәнін бағдарламаны орындау барысында өзгертуге болатынын білдіреді.

4.4 Бақылау сұрақтары

4.4.1 DrawGrid компонентінің негізгі қасиеттерін атаңыз.

4.4.2 goEditing флагы нені білдіреді?

4.4.3 Бағдарламалау кезеңінде ұяшықтарды өзгертуге мүмкін болу үшін не жасау керек?

4.4.4 i-ші жол және j-ші баған қиылысында орналасқан ұяшыққа сілтеу қалай орындалады?

4.4.5 «Жаққышты ақ бояуға матыру» үшін қандай команданы орындау қажет?

5 Зертханалық жұмыс. Меню құру. Main Menu және Popup Menu компоненттері 

Жұмыс мақсаты: Main Menu және Popup Menu  басқару компоненттерімен танысу және осы  компоненттерді Windows-қосымшаларды құруда қолдануды, аспаптар панелін құруға, бірнеше интерфейстік элементтерді көрсетуге және оларды орталықтан басқаруға, күй жолын құруға дағдылану, TrackBar, ProgressBar танысу.

5.1   Зертханалық жұмысқа 1 тапсырма

5.1.1 Бас меню құру, меню екі тармақтан тұру керек: «Обработка массива» және «сервис» (5.1 суретті қараңыз). «Обработка массива» келесі командалардан тұрады: max, min, sum.  «Сервис» командалары: clear  және close. Clear командасының ішкі менюі: clear stringgrid және  clear memo.

Меню тармақтарын таңдауға реакция ретінде массив элементтерінің  максимум, минимум және суммасын шығару керек. Массив элементтерінің  мәні StringGrid кестесіне енгізілсін.

5.1.2 Массив элементтерінің  максимум, минимум және суммасын экранға шығару үшін локальды меню (контекстік меню) құру қажет.

5.1.3 Массив элементтерінің  максимум, минимум және суммасын Button  компонентін қолданып шығару керек, бірақ оқиға өңдегіш ретінде процедура қолданылсын (алдын ала құрылған – бас меню тармақтарын таңдауға реакция).

Бағдарламаны құру жоспары:

1) Компоненттерді форма дизайнеріне 5.1 суретке сәйкес орнату:

MainMenu1 –Standard бетінен;

PopupMenu1 –Standard бетінен;

Memo1- Standard бетінен;

Button1-5 – Standard бетінен; caption қасиетіне мән беру, 5.1 суретке сәйкес.

StringGrid1 –Additional бетінен; қасиеттердің мәнін беру:

colcount - 5,

rowcount – 5,           

fixed row-0,

fixed col – 0,

options – goEditing – true,

options – goTab – true.

2) MainMenu1 компонентінің Items қасиетін таңдау. Үш нүктелі батырманы шерту. Меню конструкторының терезесі пайда болады. Жоғарғы деңгей менюінің тармақтары көлденеңінен түседі. caption қасиеттерінің мәні келесідей: caption:=’обработка массива’ және caption:=’сервис’.

3) Келесі деңгей менюінің тармақтарын 5.2 суретке сәйкес теру. «Обработка массива» тармағы үшін max, min, sum. Max командасы үшін тез ауысу батырмасын тағайындау (акселератор). Бұл жағдайда caption қасиетінің мәні &max. min командасы үшін «ыстық» батырманы тағайындау: ShortCut қасиетін тадап, құлама тізімнен қажетті мәнді таңдау, мысалы, Ctrl+M.

 

5.1 сурет

4) «Сервис менюінің тармағы үшін clear және close командаларын қосу (5.3 суретті қараңыз). Сlear командасы бойынша ішкі меню ашылу үшін келесі жұмыстарды орындау керек: clear командасын ерекшелеу, тіртуірдің оң жағымен шерту, конструктордың ашылған локальды меню ішінен Create Submenu  командасын таңдау, ішкі меню тармақтарын енгізу: clear stringgrid және  clear memo.

 

5.2 сурет

5) Меню тармақтарын таңдау әсерінен болатын реакцияны анықтау үшін меню тармағын таңдап, оны шерту керек. Нәтижесінде код редакторының терезесі ашылады, оған OnClick  оқиға өңдегішінің коды енгізіледі. Мысалы, менюдің  max элементінің OnClick оқиға өңдегішінің түрі келесідей:

procedure TForm1.max1Click(Sender: TObject);

var max:integer;    i,j:integer;

begin

 max:=a[1,1];

    for i:=1 to 5 do

      for j:=1 to 5 do

        if a[i,j]>=max then max:=a[i,j];

        memo1.Lines.Add('max value ='+ inttostr(max));

end;

Менюдің басқа командалары үшін де оқиға өңдегіш коды осылай енгізіледі (обработка массива-min және sum, сервис-clear stringgrid).

 

5.3 сурет

6) Stringgrid1 кестесінің массив элементтерін енгізуге арналған start батырмасын актививтендіру, OnClick оқиға өңдегіш кодын жазу:

procedure TForm1.Button4Click(Sender: TObject);

var i,j:integer;

begin

 for i:=1 to 5 do

 for j:=1 to 5 do

    a[i,j]:=strtoint(stringgrid1.Cells[j-1,i-1]);

end;

7) Memo тазалауға арналған clear memo батырмасын актививтендіру.

8) Форманы жабуға арналған Close (button6) батырмасын актививтендіру.

9) «Сервис» менюінің Close командасы үшін 8-тармақта құрылған Button6Click процедурасы  қолданылады. Сlose1Click оқиға өңдегіші (сервис менюінің close  командасы) келесі түрде:

procedure TForm1.close1Click(Sender: TObject);

begin;

 button6Click(button6);

end;

Осылайша «Сервис» менюінің clear memo командасынан 7-ші тармақта құрылған процедура да шақырылады.

10)   max (Button1) және min(Button2)  батырмалары үшін сәйкесінше max1Click(max1) және min1Click(min1) процедуралары шақырылады:

procedure TForm1.Button1Click(Sender: TObject);

begin;

 max1Click(max1);

еnd;

11) Жобаны  menu папкасында сақтау және орындауға жіберу.

12) Контекстік меню құру. PopupMenu компонентінің Items қасиетінде контекстік меню элементтерін көрсету: бас менюдегідей: max, min, sum, clear stringgrid, close;

13) Локальды менюдің max элементінің OnClick-ке реакциясы бас менюдің max элементінікіндей болады. Сонда локальды менюдің max элементі үшін OnClick оқиға өңдегіші келесідей:

procedure TForm1.max2Click(Sender: TObject);

begin;

 max1Click(max1);

end;

Осылайша локальды менюдің басқа элементтерінен бас меню процедуралары шақырылады.

14) Form1 формасының  кез келген нүктесінен локальды менюге қол жеткізу үшін оның PopupMenu  қасиетін PopupMenu1 мәніне теңестіру керек.

15) Жобаны сақтау, оны орындауға жіберу. Оң батырма шертпесі локальды менюді активтендіреді.

 

5.2  Зертханалық жұмысқа 2 тапсырма

 

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

Бағдарламаны құру жоспары:

1)       Формаға келесі компонеттерді қою: MainMenu, квадрат теңдеу коэффициенттері үшін LabelEdit – 3 компонент және конустың радиусы және  биіктіг үшін 2 компонент. 5.4 суреттегідей Memo1,  Memo2 – теңдеудің түбірлерін және көлемді шығару үшін. Формаға ToolBar компонентін орнату. Үш батырма құру.

2)       Координаталары көрсетілген бас меню құру.

3)       Менюдің әрбір элементі үшін оқиға өңдегіштер құру (5.2 тармақты қарау).

 

5.4 сурет

4)       Аспаптар панеліндегі әрбір батырманы менюдің нақты бір тармағымен байланыстыру: батырманың MenuItem қасиетінде меню тармағын таңдау. Мысалы, ToolButton1 – MenuItem – N2  т.с.с. Батырмада меню тармағының атауын көрсету үшін, Аспаптар панелінің ShowCaptions  қасиетінің мәнін  true орнатыңыз.

5)       StatusBar компонентін орнату. Уақыт пен күнді көрсету үшін: екі панельге бөлу – тіртуірдің оң батырмасымен StatusBar шертіп, Panels Editor таңдау және екі панель қосу. Ағымдық уақыт пен күнді көрсету timer компонентін орнату. Timer1 активтендіріп, оқиға өңдегішке келесіні қою:

statusbar1.Panels[0].Text:=datetostr(now);

statusbar1.Panels[1].Text:=timetostr(now);

6)     Жобаны сақтап, оны орындауға жіберу.

5.3 Зертханалық жұмысқа жеке тапсырма

Алдыңғы 1, 2, 3, 4 зертханлық жұмыстарға құрылған қосымшаларды орындайтын қосымша құру. Қосымшаны орындау сәйкес меню немесе ішкі меню тармағын, локальды менюді, аспаптар панелінің батырмаларын қолдану арқылы орындалады. Күй панелін құру, онда уақыт, күн, апта күнін, қосымша құрушы мәліметтері көрсетілу керек.

5.4 Main Menu және Popup Menu компоненттері 

Кез келген Windows-қосымшаның интерфейсінің бас атрибуты меню болып табылады. Меню – ол аты аталған командалар  және бөлек қызметтік категорияларға топтастырылған қосымша ішкі менюлер жиыны. Ауқымдылық дәрежесіне байланысты меню бас меню және локалды меню деп бөлінеді. Көптеген қосымшалардың рұқсат етілген операциялар тізімі бар бас менюі бар. Бас меню тармақтарын басқалай нөлдік (жоғарғы) деңгей менюінің элементтері деп атайды.  Өйткені оның әрбірінде құлама менюі болуы мүмкін.

Бас менюді құру үшін Компоненттер палитрасының  Standard бетінде орналасқан визуалды емес компонент Main Menu бар.

Бас менюді құру процесі форманы жобалау кезеңінде қондырылған меню контструкторы Menu Designer көмегімен іске асады. Меню конструкторын шақыру үшін компонентті тіртуірдің оң жақ батырмасымен шертіп Menu Designer командасын таңдау керек немесе Объектілер инспекторындағы Items қасиетін қолдану керек.

Main Menu – ол ТMainMenu класының  экземпляры болып табылады.

Компоненттің негізгі қасиеттері:

Items; Қосымшаның бас менюдің нөлдік деңгейінің элементтерінен тұрады.

Caption:string; Меню элементінің мәтіні. Егер мәтін символының алдына &  символын орнатса, онда тез ауысу батырмасын беруге болады (акселератор).

Егер Caption қасиетінің атауы мәтінінің орнына «-» мәнін берсек, онда осы орында бөлетін сызық болады.

Checked:Boolean; Егер қасиеттің мәні True болса, онда элемент «галочкамен» түртіледі.

ShortCut:TshortCut; «Ыстық» пернелер  комбинациясын анықтайды (клавиша быстрого управления).

Bitmap:TBitMap; меню атауының сол жағын растрлық бейнемен безендіруге арналған қасиет. Ол үшін  Bitmap қасиетінің редакторын ашып  оған .bmp кеңейтілуі бар графикалық файлды жүктеу керек.

Ішкі меню құру үшін меню элементін тадап, тіртуірдің сол батырмасымен шертіп, локальды меню ішінен Create Submenu  тармағын таңдап, ішкі меню тармақтарын енгізу керек.

Локальды меню элементі тіртуірдің сол жағымен шертсе көрінеді. Оны құру үшін Компоненттер Палитрасының  Standard бетінде орналасқан PopupMenu компоненті қолданылады. Оның қасиеттері Main Menu қасиеттеріне ұқсас.

5.5    ToolBar және StatusBar  компоненттері 

Аспаптар Панелі бұл арнайы контейнер.  Аспаптар панелінде батырмалар, ауыстырғыштар, қиыстырылған тізімдер орналасуы мүмкін Аспаптар панелін құру үшін Компонент палитрасының Win32 бетінде орналасқан ToolBar компоненті қолданылады. Панельде орналасатын негізгі элемент – ToolButton батырмасы. Жаңа батырмалар Аспаптар Панелінің локальды менюінің New Button командасының көмегімен орнатылады. 

Батырмаларға бейнелер ImageList компонентінің көмегімен бекітіледі де коллекция қалыптасады. Содан кейін коллекция атауы Аспаптар панелінің Images қасиетіне теңестіріледі, ал ImageIndex қасиетіне суреттердің біреуінің индексі беріледі.

Күй жолын Win32 бетінде орналасқан StatusBar компоненті көрсетеді. Күй жолы қосымша ақпаратты көрсетуге арналған, мысалы, ағымдық күнді, уақытты және т.б. Ол бірнеше бөлек панельдерге бөлінуі мүмкін. Ол үшін келесі жұмыстарды орындау керек: күй жолын екі рет тіртуірмен шертіп, Add New батырмасының көмегімен қажетті панельдер санын қосу. Text  панелдегі мәтінді көрсетеді.

Нақты бір панельмен жұмыс істеу индекс арқылы орындалады: Panels[i].

5.6    Бақылау сұрақтары

5.5.1 Меню дегеніміз не?

5.5.2 Бас меню тармақтары қалай аталады?

5.5.3 Жобалау кезеңінде бас менюді құру процесі қалай жүреді?

5.5.4 Ішкі менюді қалай құрады?

5.5.5 Бас меню және локальды меню құру үшін қандай компоненттер қолданады?

5.5.6 Form1 формасының  кез келген нүктесінен локальды менюге қол жеткізу үшін қайсы компоненттің қандай қасиеттері қалай өзгеруі керек?

 

6 Зертханалық жұмыс. Математикалық функциялар графиктерін салу. Chart компонентінің көмегімен диаграмма тұрғызу

 

Жұмыстың мақсаты: сурет салу бетінде және Chart компонентінде графиктер және диаграммаларды тұрғызуға дағдылану.

6.1 Зертханалық жұмысқа 1 тапсырма

Формаға у=20+х2 функциясының графигін шығару. Координаталар осін және торды салу қажет.

Қосымшаны құру жоспары:

1)       Формаға PaintBox компонентін орнату (System компоненттер палитрасы).

2)       Тапсырмада координаталар жүйесінің центрінің координатасы (50, 200) нүктесіне ауысады.

3)       Жаңа координаталар жүйесінде жұмыс істеу ыңғайлы болу үшін сх және су атты арнайы функциялар жазылады. Олар нүкте координатасын берілген жүйеден  Delphi-де қабылданған жүйеге түрлендіруге арналған.

function cx(X:integer):integer;

 begin

  cx:=50+x;

  end;

function cy(Y:integer):integer;

  begin

  cy:=200-y;

  end;

4)       Координаталар жүйесінің осьтерін салу:

   with Form1.Canvas do

      begin             

       //1. Координаталар жүйесінің осьтерін салу

         pen.Width:=2;

         moveTo(cx(0),cy(0));

         Lineto(cx(0),cy(160));    //ось х

         moveTo(cx(0),cy(0));

         Lineto(cx(300),cy(0));    //ось у

5)   Координаталық торды 20 пиксель қадаммен салу:

         pen.Width:=1;

         pen.Style:=psDot;

         for i:=1 to 8 do

         begin

            moveTo(cx(0),cy(i*20));

            Lineto(cx(300),cy(i*20));

         end;

          for i:=1 to 15 do

         begin

            moveTo(cx(i*20),cy(0));

            Lineto(cx(i*20),cy(160));

         end;

6)     Осьтердің атауын шығару:

       //3. Осьтердің атауын шығару

         font.Size:=15;

         TextOut(cx(290),cy(-5),'x');

         TextOut(cx(-20),cy(160),'y');

7)     Графикті көрсету:

         for i:=0 to 300 do

         pixels[cx(i),cy(20+round(i*i/1000))]:=clRed;

8)       Сақтау және жобаны орындауға жіберу (6.1 суретті қараңыз).

 

6.1 сурет

6.2 Зертханалық жұмысқа 2 тапсырма

у=х2  функциясының графигін Chart компонентін қолданып тұрғызу. Күй жолында ағымдық уақытты көрсету

Қосымшаны құру жоспары:

1)   Additional  бетінен формаға Chart1 компонентін орнату, Win 32 бетіненTimer1, StatusBar1 және де  Button1 – «График», Button2 – «Закрыть».

2)   Chart1 компонентін екі рет шертіп немесе локальды менюінің Edit Chart командасының көмегімен график конструкторыEditing Chart 1 ашу.

3)   Add батырмасын шертіп график типін таңдау Line; 3D жалауын алып тастау.

4)   График атауын өзгерту – Парабола деп атау. Ол үшін Chart  бетінің Titles жолына өтіп график атауын енгізу.

5)   «График» батырмасын активтендіру және оқиға өңдегіш денесіне келесі мәтінді орналастыру:

for i:=1 to 5 do

 begin

 a[i]:=i;b[i]:=a[i]*a[i];

chart1.Series[1].AddXY(a[i],b[i],' ',clred);

 end;

6)       «Закрыть» батырмасын активтендіру және команданы енгізу.

7)       Timer1 активтендіру оқиға өңдегішіне келесі мәтінді орналастыру:

statusbar1.Panels[1].Text:=timetostr(now).

8)     Жобаны сақтау және орындауға жіберу (6.2 суретті қараңыз).

 

6.2 сурет

  

6.3   Тапсырма нұсқалары

6.3.1 Кестедегі мәліметтер бойынша диаграммалар тұрғызу

1 кесте – Ірі Ресейлік компаниялардың мұнай шығару динамикасы, млн. тонна.

Компания

1996

1997

1998

1999

2000

2001

2001

2003

Сургутнефтегаз

33

33,9

35,2

37,9

41

44

48

52

Лукойл

53

57,1

64,2

73,5

75

78,3

81,4

84,7

Татнефть

25

25,5

25,5

26,3

23,1

24,6

24,7

26

Сибнефть

19

18,2

17,3

16,3

17,2

20,7

26,8

31,5

 

2 кесте – Әлемдік ауылшаруашылық өндіріс: қосылған баға, млрд. долл.

Ел

1900

1913

1929

1938

1950

1960

1970

1980

1990

2000

АҚШ

43

56

69

76,5

93,5

105

128,5

146

157,5

175

Германия

16

19

20

21,5

23

29

37

40,5

46

52,5

Франция

21,5

22

22,5

23

23,5

29,5

47

53

65

76,5

Италия

13,5

14,5

16

17

18,5

30,5

42

44,5

49

56

 

3 кесте – Әлемдік экономикада  жұмыспен қамтылғандар саны, млн. адам.

Ел

1900

1913

1929

1938

1950

1960

1970

1980

1990

2000

Германия

18,5

23,5

25

26,5

29

31

34

35

37

38,5

Франция

20

20

20

19,5

19

21

23

25

26,5

27,5

Ұлыбритания

16,5

18,5

20

20,5

22,5

24

25

25,5

26

26,5

Италия

15

16,5

17

18

18,5

20

22

24

24,5

25

 

4 кесте – Әлемдік экспорт, млрд долл.

Ел

1900

1913

1929

1938

1950

1960

1970

1980

1990

2000

Германия

21,5

54

58

64,1

36,5

87,5

185

385

600

710

Франция

22

28,5

40,5

40

31,5

62,5

140

235

330

420

Ұлыбритания

38,5

54,5

73

76

66

105

160

235

320

400

Бельгия

12,2

15,5

18,4

16,8

12,3

27,5

63

112

176

214

 

5 кесте – Өндірістік кәсіпорын: қосылған баға, млрд долл.

Ел

1900

1913

1929

1938

1950

1960

1970

1980

1990

2000

Германия

29

51

59

478

93

244

420

510

575

625

Франция

28

46

57

52

63

93

190

275

310

355

Ұлыбритания

53

73

84

105

130

180

245

265

300

335

Бельгия

18

23

58

59

65

90

180

263

314

348

 

6.3.2  Графиктер және суреттер тұрғызу.

1.        Тұрақты жылдамдықпен экранды оңнан солға қарай көлденең осіне параллель кесіп өтетін нүктені көрсету. Нүкте сол жағына жеткен мезетте оң жақтан кездейсоқ сан датчигінің көмегімен таңдалған басқа нүке өзінің жолын бастайды. Нүкте түсін де  кездейсоқ сан датчигінің көмегімен таңдауға болады.

2.        Экран кеңістігінде өзінің ортасының айналасында айналатын  кесінді тұрғызу.

3.        Экран кеңістігінде өзінің ұшының айналасында айналатын  кесінді тұрғызу.

4.        Экран кеңістігінде кесіндіні 1:3 қатынасында бөлетін нүктенің айналасында айналатын кесіндіні көрсету.

5.        Экран кеңістігінде экранды вертикаль бағытта қалыпты үдеумен кесіп өтетін нүктені көрсету.

6.        Экранда алыстан жақындап келе жатқан шарды көрсету.

7.        Экранда үлкен әріптерден құралған БАУ-09 сөзін көрсету және оның экранның сол жағынан көлденең бойынша оңға ауысуын орындау.

8.        Экранда үлкен әріптерден құралған БАУ-09 сөзін көрсету және оның экранның астыңғы жағынан вертикаль бойынша жоғары ауысуын орындау.

9.        Экранда үлкен әріптерден құралған екі БАУ-09 сөзін көрсету және экранның көлденеңі бойынша қарама-қарсы сол жағынан және оңға жағынан бір-біріне келе жатқанын орындау. Қозғалыс біріккенге дейін болады.

10.   Жеті жиналған шеңберді, яғни «судағы шеңберлерді» орындау. Шеңбер ортасы экран ортасымен бір болуы керек, ал радиустары 40-тан 82 пикселге дейін 7 пиксел сайын өзгеруі керек. Қозғалыс иллюзиясы барлық шеңберлердің түсі өзгеруі арқылы орындалуы керек, ішкісінен бастап. Түстерінің ауысу процесін бірнеше рет қайталау керек.

 

6.4 Сурет салу беті

Сурет салу беті – бұл Tcanvas типтегі объект. Көптеген графикті визуалды басқару элементтерінің Canvas қасиеттері бар, оның көмегімен олардың сурет салу бетіне тікелей баруға болады. Оларға жататындар: Form, label, Image, PaintBox1, StringGrid, DrawGrid және т.б.

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

Қасиеттері:

Canvas бағдарламаны орындау кезеңінде бейне қалыптастыру үшін;

Picture  компонентте орналасқан бейнені анықтайды;

Егер Stretch   қасиеті True болса, онда бейне компонент өлшеміне сай үлкейеді немесе кішірейеді. Келісім бойынша мәні False;

PaintBox компоненті компоненттер палитрасының System бетінде орналасқан және форманың шектелген облысында ғана сурет салуға мүмкіндік береді;

Shape компоненттер палитрасының Additional бетінде орналасқан. Формада қарапайым геометриялық фигураларды құру үшін қолданылады;

Brush қасиеті бояуға арналған жаққышты (кисть) анықтайды, ал Penқарындаш, фигура контурын салуға арналған.

6.5 Координаталар жүйесі

Әрбір сурет салу беті тәуелсіз координаталар жүйесімен сипатталады. Координаталар жүйесінің көмегімен графикалық бейнелерді салу кезінде бағыт анықтауда ыңғайлы. Координатасы (0,0) болатын бастапқы нүкте сурет салу бетінің жоғарғы сол бұрышында орналасқан. Көлденең ось солдан оңға бағытталған, ал вертикаль ось – жоғарыдан төменге.

Қолданылатын координаталар жүйесінің өлшем бірлігі - пиксель. Яғни, координатаның бірге өзгеруі оның 1 пиксельге ығысуына әкеледі.

6.6 Графикалық құралдар

Негізгі графикалық құралдар – Pen және  Brush.

Қарындаш Pen геометриялық фигуралардың сызықтарын және кескінін сызуға арналған. Келісім бойынша бір пиксель қалыңдықтағы қара түспен сызады. Қарындаштың негізгі қасиеттері:

Color  - түсі;

Width – пиксель бойынша қарындаштың қалыңдығы;

 Style –  салу стилі. Мысалы, psSolid – бүтін сызық, psDot – пунктирлік сызық.

Шектеу: қалыңдығы 1 пиксельден асқан кезде psSolid түрінен басқа барлық стиль түрлері ескерілмейді.

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

Brush-тың негізгі қасиеттері: Color – түсі, Style – стилі.

Style қасиеті фигуралардың ішкі облысын толтыру стилін анықтайды. Мысалы, bsSolid стилі – бүтін жолақпен толтыру,  bsBDiagonal –диагональ сызықтармен толтыру, bsDiagCross – қиылысқан диагональ сызықтармен толтыру.

Графикалық бейне қарапайым графикалық элементтерді – примитивтерді біріктіру немесе қиылыстыру нәтижесі болып табылады.

Сурет салу үшін қолданылатындар: LineTo() функциясы - сызық салады, MoveTo()–курсорды көрсетілген орынға орнатады, TextOut()–мәтін шығарады.

6.7 Chart компоненті  (графиктер және диаграммаларды көрсетуге)

Chart компоненті Additional бетінде орналасқан. Келісім бойынша графикте бос координаталар жүйесі және Тchart атауы көрсетіледі. Көрсеткіштерін өзгерту арнайы конструктор көмегімен жүреді, ол Сhart компонентінің  локальды менюінің EditChart командасымен шақырылады.

Ол Chart бетінің келесі көрсеткіштерін өзгертуге мүмкіндік береді:

- Серия (мәліметтер тізбегінің) типі – Series беті.

- Жалпы көрсеткіштері – General беті.

- Осьтері –Axis беті.

- Атауы –Title беті.

- Легенда – Legend беті.

Мәліметтер көзі және серия көрсеткіштері –Series беті.

Графикті құру сериялар (тізбек) жиынын қалыптастырудан басталады. Серияны қосу үшін Add батырмасын шертіп, пайда болған терезеде график типін таңдау. Нақты бір сериямен жұмыс істеу Series[index:longint] қасиетімен жүзеге асады, мұнда index – тізімдегі реттік нөмір. Серияға динамикалық түрде нүктелер қосу үшін келесі әдісті қолдануға болады:

AddXY(x,y:double;const label:string; color:Tcolor).

6.8  Бақылау сұрақтары

6.7.1     Canvas қасиеті бар компоненттерді атаңыздар.

6.7.2     Сурет салу бетінің қай жерінде (0,0) координаталы нүкте орналасқан?

6.7.3     Сурет салу бетінің  координаталар жүйесінде қандай өлшем бірліктер қолданылады?

6.7.4     LineTo() функциясы не үшін қолданылады?

6.7.5     MoveTo() функциясы не үшін қолданылады?

6.7.6     TextOut() функциясы не үшін қолданылады?

6.7.7     Pen және Brush графикалық құралдарының қасиеттерін атаңыз.

6.7.8     Chart компонентін қолданғанда жаңа серияны қалай қосу керек?

6.7.9     Нақты бір сериямен жұмыс істеу үшін қай қасиетті қолдану керек?

 

 А қосымшасы

№1 зертханалық жұмысқа бағдарлама листингтері

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

 

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Button1: TButton;

    Label4: TLabel;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure edit1keypress(Sender: TObject; var Key: Char);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

 

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var r,h,v,s: real;

begin

  r:=strtofloat(edit1.Text);

  h:=strtofloat(edit2.Text);

  s:=pi*sqr(r);

  v:=s*h;

  label3.Caption:=' цилиндр негізінің ауданы  тең'+floattostrf(s,ffgeneral,7,2);

  label4.Caption:='цилиндр көлемі тең'+floattostrf(v,ffgeneral,7,2);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.edit1keypress(Sender: TObject; var Key: Char);

begin

If key=#13 then  Edit2.SetFocus;

end;

end.

unit Unit1;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Memo1: TMemo;

    Button1: TButton;

    Button3: TButton;

    Label1: TLabel;

    Label2: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

implementation

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var r,h,s,vkon,vcil:real;

begin

r:=strtofloat(edit1.Text);

h:=strtofloat(edit2.Text);

s:=r*r*pi;

vkon:=s*h/3;

vcil:=s*h;

memo1.Lines.Add('объем конуса равен:  '+floattostr(vkon));

memo1.Lines.Add('объем цилиндра равен:  '+floattostr(vcil));

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

edit1.Clear;

edit2.Clear;

memo1.Clear;

end;

end.

 Б қосымшасы

№2 зертханалық жұмысқа бағдарлама листингтері

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons;

type

  TForm1 = class(TForm)

    ListBox1: TListBox;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    BitBtn1: TBitBtn;

    Button1: TButton;

    procedure BitBtn1Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure ListBox1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 case   listBox1.ItemIndex of

0: Label3.Caption:= 'черный  000000';

1: Label3.Caption:='белый  FFFFFF' ;

2: Label3.Caption:='красный  FF0000' ;

3: Label3.Caption:='зеленый  00FF00' ;

4: Label3.Caption:= 'бирюзовый 00FFFF';

5: Label3.Caption:='синий 0000FF';

6: Label3.Caption:='фиолетовый  FF00FF';

7: Label3.Caption:= 'желтый  FFFF00';

8: Label3.Caption:= 'коричневый  996633';

9 : Label3.Caption:= 'оранжевый  FF8000';

10: Label3.Caption:='лиловый  8000FF';

11: Label3.Caption:='серый  А0А0А0';

end;

end;

end.

 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;

type

  TForm1 = class(TForm)

    ComboBox1: TComboBox;

    ComboBox2: TComboBox;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;

      Shift: TShiftState);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;   i, max, min, maxi,mini:integer;

  a:array[1..10] of integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

i:=0;

comboBox1.Clear;

combobox2.Clear;

combobox1.TabOrder:=0;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

combobox1.items.add(combobox1.Text);

i:=i+1;

a[i]:=strtoint(combobox1.Text);

combobox1.SetFocus;

end;

procedure TForm1.Button2Click(Sender: TObject);

var k:integer;

begin

  max:=a[1];   maxi:=1;  min:=a[1];  mini:=1;

  for k:=2 to 10 do

     begin

       if max<a[k] then

          begin

            max:=a[k];

            maxi:=i;

          end;

       if min>a[k] then

          begin

            min:=a[k];

            mini:=i;

          end;

      end;

       a[maxi]:=min;

       a[mini]:=max;

       for k:=1 to 10 do

       combobox2.Items.Add(inttostr(a[k]));

       combobox2.DroppedDown:=true;

end;

 

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

if key=13 then button1.SetFocus;

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

end.      

 

В қосымшасы

№3 зертханалық жұмысқа бағдарлама листингтері

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, CheckLst, ExtCtrls;

type

  TForm1 = class(TForm)

    RadioGroup1: TRadioGroup;

    CheckListBox1: TCheckListBox;

    Button1: TButton;

    Memo1: TMemo;

    procedure Button1Click(Sender: TObject);

    procedure RadioGroup1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var   Form1: TForm1;

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

var I:integer;

begin

memo1.Clear;

for I:=0 to 10 do checklistbox1.checked:=false;

if radiogroup1.ItemIndex=-1

then showmessage('Аудиторияны таңдау қажет!')else

case radiogroup1.ItemIndex of

0:begin checklistBox1.Checked[2]:=true;

        checklistBox1.Checked[3]:=true;

        checklistBox1.Checked[4]:=true;

        checklistBox1.Checked[10]:=true;

        checklistBox1.Checked[11]:=true;

memo1.Lines.Add('Желательно установить дополнительные программы');

end;

1:begin checklistBox1.Checked[1]:=true;

checklistBox1.Checked[3]:=true;

checklistBox1.Checked[5]:=true;

checklistBox1.Checked[6]:=true;

checklistBox1.Checked[8]:=true;

checklistBox1.Checked[9]:=true;

checklistBox1.Checked[10]:=true;

memo1.Lines.Add('Эта аудитория занята весь день');

end;

2:begin checklistBox1.Checked[2]:=true;

checklistBox1.Checked[3]:=true;

checklistBox1.Checked[4]:=true;

checklistBox1.Checked[6]:=true;

checklistBox1.Checked[8]:=true;

checklistBox1.Checked[9]:=true;

memo1.Lines.Add('Можно установить ТурбоС++');

end;

3:begin checklistBox1.Checked[5]:=true;

checklistBox1.Checked[7]:=true;

checklistBox1.Checked[9]:=true;

memo1.Lines.Add('В этой аудитории проводятся занятия по    

спецдисциплинам');

end;

4:begin checklistBox1.Checked[1]:=true;

checklistBox1.Checked[2]:=true;

checklistBox1.Checked[8]:=true;

checklistBox1.Checked[3]:=true;

memo1.Lines.Add('Это - аудитория преподавателей');

        end;

end;

end;

end.

 Г қосымшасы

№4 зертханалық жұмысқа бағдарлама листингтері

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, Grids;

type

  TForm1 = class(TForm)

    DrawGrid1: TDrawGrid;

    Timer1: TTimer;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    procedure Timer1Timer(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);

var k,i,j:integer; area:TRect;

begin

DrawGrid1.Canvas.Brush.Color:=clBlack;

for i:=0 to 174 do

   for j:=0 to 104 do

       begin

   area:= DrawGrid1.CellRect(j,i);

   drawGrid1.Canvas.FillRect(area);

        end;

        k:=-1;

        DrawGrid1.Canvas.Brush.Color:=clWhite;

        for i:=0 to 174 do

        for j:=0 to 104 do

        begin inc(k);

        if frac(sqrt(k))=0 then

        begin

          area:= DrawGrid1.CellRect(j,i);

         drawGrid1.Canvas.FillRect(area);

         end;

         end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

timer1.Enabled:=false;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

timer1.Enabled:=true;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

end.

  

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Grids;

type

  TForm1 = class(TForm)

    StringGrid1: TStringGrid;

    StringGrid2: TStringGrid;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var i,j:integer;

begin

 for j:=0 to 4 do

        if (j<>1)and (j<>3) then

          for i:=0 to 4 do

            StringGrid2.Cells[j,i]:=StringGrid1.Cells[j,i];

         for i:=0 to 4 do

            begin

              StringGrid2.Cells[1,i]:=StringGrid1.Cells[3,i];

              StringGrid2.Cells[3,i]:=StringGrid1.Cells[1,i];

            end;

end;

procedure TForm1.Button4Click(Sender: TObject);

var i,j:integer;

begin

    for i:=0 to 4 do

      for j:=0 to 4 do

      StringGrid2.Cells[j,i]:=' ';

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

 stringgrid2.Cols[0]:=stringgrid1.Cols[0];

 stringgrid2.Cols[1]:=stringgrid1.Cols[3];

 stringgrid2.Cols[2]:=stringgrid1.Cols[2];

 stringgrid2.Cols[3]:=stringgrid1.Cols[1];

 stringgrid2.Cols[4]:=stringgrid1.Cols[4];

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

end.

 

Д қосымшасы

№5 зертханалық жұмысқа бағдарлама листингтері

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, Menus, StdCtrls, Grids;

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    PopupMenu1: TPopupMenu;

    StringGrid1: TStringGrid;

    Button1: TButton;

    Button2: TButton;

    Memo1: TMemo;

    Button6: TButton;

    N1: TMenuItem;

    max1: TMenuItem;

    min1: TMenuItem;

    sum: TMenuItem;

    N2: TMenuItem;

    clear1: TMenuItem;

    clearstringgrid1: TMenuItem;

    clearmemo1: TMenuItem;

    close1: TMenuItem;

    Button7: TButton;

    Button3: TButton;

    max2: TMenuItem;

    min2: TMenuItem;

    sum1: TMenuItem;

    memoclear1: TMenuItem;

    close2: TMenuItem;

    procedure Button7Click(Sender: TObject);

    procedure max1Click(Sender: TObject);

    procedure min1Click(Sender: TObject);

    procedure sumClick(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure close1Click(Sender: TObject);

    procedure clearstringgrid1Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure clearmemo1Click(Sender: TObject);

    procedure max2Click(Sender: TObject);

  

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;    a:array [1..5,1..5] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button7Click(Sender: TObject);

var i,j:integer;

begin

 for i:=1 to 5 do

 for j:=1 to 5 do

    a[i,j]:=strtoint(stringgrid1.Cells[j-1,i-1]);

end;

procedure TForm1.max1Click(Sender: TObject);

var max:integer;    i,j:integer;

begin

 max:=a[1,1];

    for i:=1 to 5 do

      for j:=1 to 5 do

        if a[i,j]>=max then max:=a[i,j];

        memo1.Lines.Add('max value ='+ inttostr(max));

end;

procedure TForm1.min1Click(Sender: TObject);

var min:integer;  i,j:integer;

begin

 min:=a[1,1];

  for i:=1 to 5 do

      for j:=1 to 5 do

        if a[i,j]<=min then min:=a[i,j];

        memo1.Lines.Add('min value ='+ inttostr(min));

end;

procedure TForm1.sumClick(Sender: TObject);

var sum:integer;  i,j:integer;

begin

sum:=0;

 for i:=1 to 5 do

      for j:=1 to 5 do

     sum:=sum+a[i,j];

        memo1.Lines.Add('sum ='+ inttostr(sum));

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

close;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 max1Click(max1);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

 min1Click(min1);

end;

procedure TForm1.close1Click(Sender: TObject);

begin

 button6Click(button6);

end;

procedure TForm1.clearstringgrid1Click(Sender: TObject);

var i,j:integer;

begin

 for i:=0 to 4 do

   for j:=0 to 4 do

   StringGrid1.Cells[j,i]:=' ';

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

memo1.Clear;

end;

procedure TForm1.clearmemo1Click(Sender: TObject);

begin

 button3Click(button3);

end;

procedure TForm1.max2Click(Sender: TObject);

begin

 max1Click(max1);

end;

end.

 

 Е қосымшасы

№6 зертханалық жұмысқа бағдарлама листингтері

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs;

type

  TForm1 = class(TForm)

    Button1: TButton;

    procedure FormPaint(Sender: TObject);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);

//1. нүкте координаталарын сурет салу бетіндегі координатаға түрлендіру функциясы

function cx(X:integer):integer;  begin

  cx:=50+x;

  end;

function cy(Y:integer):integer;

  begin

  cy:=200-y;

  end;

  var i:integer;

  begin

   with Form1.Canvas do

      begin            

       //2. Координаталар жүйесінің осьтерін сызу

         pen.Width:=2;

         moveTo(cx(0),cy(0));

         Lineto(cx(0),cy(160));       //ось х

         moveTo(cx(0),cy(0));

         Lineto(cx(300),cy(0));       //ось у

        //3. Координаталық торды 20 пиксель қадаммен сызу

         pen.Width:=1;

         pen.Style:=psDot;

         for i:=1 to 8 do

         begin

            moveTo(cx(0),cy(i*20));

            Lineto(cx(300),cy(i*20));

         end;

          for i:=1 to 15 do

         begin

            moveTo(cx(i*20),cy(0));

            Lineto(cx(i*20),cy(160));

         end;

       //4. Осьтердің аттарын шығару

         font.Size:=15;

         TextOut(cx(290),cy(-5),'x');

         TextOut(cx(-20),cy(160),'y');

         //5. Графикті көрсету

         for i:=0 to 300 do

         pixels[cx(i),cy(20+round(i*i/1000))]:=clRed;

         end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

close;

end;

 

end.

 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, TeeFunci,

  ComCtrls;

type

  TForm1 = class(TForm)

    Chart1: TChart;

    Series1: TBarSeries;

    Button1: TButton;

    Button2: TButton;

    Series2: TLineSeries;

    StatusBar1: TStatusBar;

    Timer1: TTimer;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

 close;

end;

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;  a,b:array [1..5] of integer;

begin

 for i:=1 to 5 do

 begin

 a[i]:=i;b[i]:=a[i]*a[i];

 {chart1.series[0].AddXY(a[i],b[i],' ',clgreen);}

chart1.Series[1].AddXY(a[i],b[i],' ',clred);

 end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

statusbar1.Panels[1].Text:=timetostr(now);

end;

end.

 

Әдебиеттер тізімі 

1.       Кандзюба С.П., Громов В.Н. Delphi 6/7. Базы данных и приложения. – Санкт-Петербург: ООО «ДиаСофтЮП», 2002.

2.       Желонкин А. В. Основы программирования в интегрированной среде DELPHI. Практикум. – М.: БИНОМ, 2006.

3.       Жуков А. Изучаем Delphi. – М. : Питер, 2002.

4.       Фленов М. Библия Delphi.- СПб.: БХВ – Петербург, 2008.

5.       Культин Н. С++ Builder  в задачах и примерах. – Санкт-Петербург: «БХВ-Петербург», 2005.

 

                                                                 2012 ж. жиынтық жоспары, реті 100