ОҚУ-Әдістемелік материалдар семей 2012. мазмұны



жүктеу 3.35 Mb.
бет2/16
Дата09.06.2016
өлшемі3.35 Mb.
1   2   3   4   5   6   7   8   9   ...   16

Модульдер


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

Модульдің коды бағдарламаның бет алысын анықтайды.

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

Кез келген модульдің құрамына келесі бөліктер кіреді:

Тақырыбы;

Интерфейстік бөлігі;

Орындалатын бөлігі;

Терминатор.

Модуль тақырыбы арнайы Unit сөзінен басталады, содан соң модуль атауы және нүктелі үтір тұрады. Интерфейстік бөлігі Interface , ал орындалатын бөлігі Implementation–түйінді сөзімен басталады. Модульдің терминаторы бағдарламаның терминаторы сияқты -End . түйінді сөзімен аяқталады.

Unit <Модульдің аты, мысалы Unit>

//интерфейстік бөлігі



Interface

Uses <модульдер тізімі>

Const <тұрақтылар тізімі>

Type <типтер анықтамасы>

Var

<процедуралар тақырыбы>

<функциялар тақырыбы>

Implementation


Uses <модульдер тізімі>

Const <тұрақтылар тізімі>

Type <типтер анықтамасы>

Var



<процедуралар анықтамасы>

<функциялар анықтамасы>

//инициялизациялау бөлігі


Initalisation


<операторлар>

// модульдің жұмысын тоқтатқандығы



Fininitalisation //орындалатын әрекеттер жиыны

<операторлар>

end.


Интерфейс бөлігінде аталмыш модульде қолданылатын, аты Uses тізімінде көрсетілген барлық модульдер мен бағдарламаларға қол жетерлік мүмкіндігін туғызатын идентификаторлардың анықтамасы орналасады. Сонымен қатар, бұл бөлікте ортақ тұрақтылар, типтер, айнымалылар және ішкі бағдарламалардың тек қана тақырыптары жарияланады.

Модульдің атауы – оны басқа модульдермен және негізгі бағдарламамен байланыстыру үшін қолданылады. Модульдің интерфейстік объектілеріне қол жеткізу үшін бағдарламада қажетті TPU (Turbo Pascal Unit - машина тіліне аударылған) файлдың атын көрсету керек. бұл байланыс келесі сөйлем арқылы жүзеге асырылады:



Uses «модульдер тізімі»;

Uses - арнайы сөз; «модульдер тізімі» - бағдарлама мен модульдерді бір-бірімен байланыстыруға қажетті модульдердің тізімі. Бұл сөйлемді қолданатын модульдер спецификациясы деп атайды және ол негізгі бағдарламаның тақырыбынан соң орналау қажет.

Егер аталмыш модуль басқа бір модульдің объектілерін қолданса, онда осындай спецификация Interface түйінді сөзінен соң бірден орналасады. Пайдаланылатын модульдердің спецификациясы келтірілген жағдайда бағдарламаға қосылған модульдің интерфейстік бөігінің барлық сипаттамалары белгілі деп саналады.

Модульдің интерфейстік бөлігінде негізгі бағдарламада және басқа модульдерге қолданылатын аталмыш модульдің барлық сыртқы объектілері анықталады. Паскаль бағдарламасы сияқты бұл анықтамадағы объектілердің реті кез келегн түрде бола алады. Интерфейстік бөлікте ішкі бағдарламалардың тек қана тақырыптары келтіріледі, ал олардың толық анықтамасы модульдің орындалатын бөлігінде көрсетіледі.

Implementation - модульдің орындалатын бөлігінде интерфейсте көрсетілген ішкі бағдарламалардың орындайтын жұмысы анықталады. Ішкі бағдарламалардың орналасу реті интерфейстік бөлігінде көрсетілген ретімен бірдей болуы шарт емес.

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



Инициялизациялау бөлігінде осы модульдерді іске асыратын бағдарлама жұмысының басталғандығы туралы операторлар орналасады. Модульдердің іске асырылуы бағдарламаның Uses бөлігінде көрсетілген ретімен орындалады. Бұл бөлік Initalisation сөзімен басталады. Бірақ ол бөліктің болмауы да ықтимал.

Егер бағдарламада инициялизациялау бөлігі бар болса, онда деинициялизациялау бөлігі болуы мүмкін. Бұл бөлік Fininitalisation сөзінен басталады және оның құрамына бағдарлама жұмысын тоқтатқандағы орындалатын операторлар кіред. Модульдерді деинициялизациялау әрекеттері бағдарламаның Uses бөлігінде көрсетілген ретіне кері бағытта орындалады.

Әр жаңа форма құрылғанда жаңа модуль де құрылады. Жалпы бағдарлама құрамында көптеген формалар және олармен байланысты модульдер болуы мүмкін.

Жоғарыдағы құрастырылған формаға сәйкестелген модульдің кодын File – Open опцияларын орындау арқылы файлын ашып, көруге болады (3.2 - сурет). Модульдің коды орналасқан файл келесі:



Unit Example;

Interface

Uses Windows,Messages,SysUtils, classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

//Example модулін Uses тізімідегі

// аталған стандартты модульдермен бірге қолдану

Type

TfmExample=class(TForm)

Panel1:Tpanel;

BbRun:TbitBtn;

BbClose:TbitBtn;

EdInput:Tedit;

LbOutput:Tlabel;

MmOutput:Tmeo;

Private

{Private declarations}

public

{Public declarations}

end;

var

fmExample:TfmExample;

implementation

{$R*.DFM}

end.

Бұл мәтінді Delphi ортасы өнзі құрастырады. Жоғарыда айтылғандай, жобаның файлына киілуге тыйым салынған, ал модульдің файлына әртүрлі жұмыстарды орындатуға негізделген өзгерістерді енгізуге болады.



6 - сурет. Модуль кодын ашу терезесі.

Модульдің интерфейстік бөлігінде бір тип (класс TfmExample) және бір объект айнымалысы анықталған.

Класс деп объектілерді құрудағы қолданылатын үлгілерді айтады, ал объект сол үлгінің туындысы болып табылады. Үлгілер Object Pascal тілінде анықталған тип және келтірілген мысалды ол Type TfmExample=class (TForm) деп анықталған. Стандартты класс Tform Windows–тің бос терезесін құрастыру жұмысын атқарады. TfmExample oсы кластың туындысы, яғни класс алғы буындағы TForm–ның барлық мүмкіндіктерін иемденеді және оларға бос формаға орналастырылған компоненттер жиынын біріктіреді.

Соңғы буыннан өзінің бағдарламалық дайындамалары бар жаңа туындыларды құруға болады және т.с.с. Нәтижесінде ағаш тәріздес саты құрылады, төбесінде ең түпкі буын TObject - қарапайым класы тұрады. Ал төменгі сатыларында сол бір ғана Toject туындылары орналасады.



4-ДӘРІС. Жобаны компиляциялау және орындау.

  1. Қолданба атауы;

  2. Жобаны компиляциялау;

  3. Жобаны жинау;

  4. Жобаны орындау.

Класстар- ол ерекше «ойлап шығару» программист үшін қиындатылған программаны өңдеу және оның сапасын жақсарту. Негізінен осы класстрда 3 фундаметальді принциптер жатыр олар: инкапсуляция, наследование и полиморфизм.

Инкапсуляция- оның жалғыз 3 мәні бар олар: - өрістер, әдістер және қасиеттері. Осы мәндерді біріктіру бір бүтін және оны инкапсуляция деп атайды.

Мысалы: Tform класы ( өзіне инкапсулировать) қажетің тәрін өзіне қамтып сақтау.

Windows- терезесіне сақтау үшін, Tmemo класын толық жұмыс істелінген текстік редактор, Ttimer-программасы жұмысты таймермен және тағы басқа қамтамассыз етеді.

Наследование-кез-келген класс басқа кластардан бұзылуы мүмкін. Ол үшін алдын-ала кластар көрсетіледі.

TchildClass=class (Tparent Class).

Бұзылған класстар автоматты түрде өріске мұра қалдырады, мысалы тәсілдер және қасиеттер жаңадан қалдыруға болады.

Бүкіл класс Object Pascai-да бір кластан ғана бұзылады ол Tobject. Бұл класс өріс немесе қасиеттері жоқ, кез-келген обьект өмірлік циклін қамтамассыз етеді- олардың құруынан бұзылғанынша дейін.

TPersistent-ол мәлеметтерді файлға сақтай "алады" және одан қайтадан қайтара алады, нәтижесінде олардан кейінгіні де шығара алады.

TComponent-класынан өз уақытында, өзара іс-қимыл етіп ортада өңделеді.

TControl-жалғыз файлдарменжұмыс істемей және ортада өңделеді, яғни ол экранда шыққан бейнеге қызмет етеді.

Полиморфизм-ол мәндері ұқсас әртүрлі әдістермен кластық қасиеттерді проблемасыз шеше алады.

Object Pascal рамкасында орнықты орналасқан осы қасиеттер немесе басқа алгаритмдардың ауысуы.

Әдістері
Инкапсуляцияланған класстар процедура және функцияларды- әдістер деп атайды.

type


TmyClass=class

Function MyFunc (aPar:Integer):Integer;

Procedure MyProc;

end;


var

aObject:TmyClass;

begin

……………..


aObject.MyProc;

……………..


end;

Object Pascal- да көбінесе динамикалық әдістерді пайдаланады.


Қасиеттері
Қасиет –дегеніміз ол механизм кластары, өрістерге жүйелеп кіруге болады. Қасиеттер көбінесе қара қоюланған сөздермен белгіленеді:Property, Read және Write.

Негізінен қасиеттер, кейбір өрістермен байланысты болады. мысалы:

type

TaClass=class;



IntField:Integer;

Function Getfield (Value:Integer);

Procedure IntegerValue:Integer read Getfield write SetField;

end;


Контекстік программада күделіктігідей өрістер қасиеттерің алдымен шығарады.

Мысалы біз мынадай операторлар жазуымызға болады.

var

aClass:TaClass;



Value:Integer;

begin


aClass:=TaClass.Crea {өріс немесе қасиетке кіріспес бұрын

aClass:=IntegerValue:=0; алдымен конструкторға көніл бөлген дұрыс}

………………..

Value:=aClass.IntegerValue;

…………………..

aClass.Destoroy; //Қажетсіз обьектіні жоюға арналған

end;

Егер өрістерді оқуға кіруге болса немесе жазуға болса онда write немесе read жіберу қажет.



5-ДӘРІС. Қолданба дайындау


  1. Қарапайым қолданба.

  2. Қолданба интерфейсін жасау.

  3. Қолданбаның функционалдылығын анықтау.


Интерфейстер -COM (Component Object Model — объектілердің компоненттік моделі), COBRA (Common Object Request Broker Architecure — жалпы объектілерді талап ететін брокерлі архитектура) технологияларында және осыған байланысты қашықтықтан кіру мүмкіндігі бар технологияларда басты роль атқарады. басқа сөзбен айтқанда, басқа машинада орналасқан объектілер объектілерге кіру технологиясы. Оның негізгі міндеті — алыстағы объектінің қасиетін, әдісін және оқиғасын сипаттау, яғни программалау тілінде клиентке арналған қосымшаны жасауда пайдаланылады. Егер ол өзінің жеке меншік объектісі болса, интерфейститің көмегімен клиент программасы алыстағы объектіге қатынас жасайды.

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


Интерфейстің құрылуы және пайдаланылуы

Интерфейстер типтерді сипаттаудың дербес жағдайы. олар interface қызметші сөзінің көмегімен хабарланады. Мысалы,


Type

IEdit=interface

Procedure Copy;stdcall;

Procedure Cut;stdcall;

Procedure Paste;stdcall;

Function Undo;stdcall;

End;

Мұндағы хабарлау абстракт класты сипаттаумен бірдей, яғни интерфейсті шақыру ондағы хабарланған қасиеттер мен әдістерді талдауды талап етпейді.



Кластардан айырмашылығы интерфейстің өрістері болмайды, сондықтан ондағы read және write бөлімінде хабарланған қасиеттер тек әдіске ғана сілтеме жасауы мүмкін. Интерфейсте хабарланған барлық мүшелер тек Public секциясында орналасады.

Әдістер абстракт (abstract), виртуалды (virtual), динамикалық (dinamic) немесе жабылатын (override) бола алмайды. Интерфейстерде конструкторлар немесе деструкторлар болмайды, яғни ондағы сипатталған әдістер тек оны сүйемелдейтін кластың шеңберінде ғана жүзеге асырылады, ол интерфейстің аты оның аталық тізіміндегі кластың хабарлануында көрсетіледі:


TEditor=class(TInterfacedObject,IEdit)

Procedure Copy;stdcall;

Procedure Cut;stdcall;

Procedure Paste;stdcall;

Function Undo:Boolean;stdcall;

End;
Әдеттегі кластан интерфейстік кластың айырмашылығы оның бірнеше аталық интерфейсі болуы мүмкін:

Type

IMyInterface=interface



Procedure Delete; stdcall;

TmyEditor=class(TInterfacedObject,IEdit,IMyInterface)

Procedure Copy;stdcall;

Procedure Cut;stdcall;

Procedure Paste;stdcall;

Function Undo:Boolean;stdcall;

Procedure Delete; stdcall;

End;
Кез келген жағдайдағы интерфейстік класты жүзеге асыру бөлімінде сәйкес интерфейстік әдістерді сипаттау қажет. Мысалы, егер интерфейс хабарланған болса

IPaint=interface

Procedure CirclePaint(Canva:Tcanvas; x,y,R:integer);

Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);

End;


Кез келген жағдайдағы интерфейстік класты жүзеге асыру бөлімінде сәйкес интерфейстік әдістерді сипаттау қажет. Мысалы, егер интерфейс хабарланған болса
IPaint=interface

ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);

Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);

End;


және оның интерфейстік класын пайдаланатын болса,

TPainter=class(TInterfaceObject, Ipaint)

ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);

Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);

End;

онда implementation бөлімінде әдістің жүзеге асырылуын көрсету қажет:



Procedure Tpainter.CirclePaint(Canva:TCanvas; x,y,R:integer);

begin


With Canva do

Ellipse(x,y,x+2*R,y+2*R);

End;

Procedure Tpainter.CirclePaint(Canva:TCanvas; x1,y1,x2,y2,R:integer);



begin

With Canva do

Rectabgle(x1,y1,x2,y2);

End;


Енді шеңбер және квадрат сызу үшін кластың интерфейстік объектісін хабарлауға болады:

Procedure Tform1.PaintBoxPaint(Sender:TObject);

var

Painter:IPaint;



begin

Painter:=TPainter.Create;

Painter.CirclePaint(PaintBox1.Canvas,10,0,10);

Painter.RectPaint(PaintBox1.Canvas,40,0,60,20);

End;

Интерфейс оның пайдаланатын интерфейстік класын хабарлағанға дейін хабарланатындығын қарамастан, оның әдістерінің кластың хабарлауында келтірілетіні міндетті екені компиляторға белгілі. Біздің жағдайда оны былай көрсетуге болады:



Type

TPainter=class(TInterfaceObject,IPaint)

End;

Мұнда жазу қате болар еді: компилятор CirclePaint және RectPaint әдістерінің сипатталуын қоюды талап етер еді.



Сондай-ақ, Object Pascal тілінің барлық кластары жалғыз аталық класс Tobject класынан туындағаны тәрізді барлық интерфейстік кластар TinterObject жалпы аталығынан туындаған. Бұл аталық жадыны интерфейстік объектілер үшін үлестіре алады және Iunknow глобальды интерфейсін пайдаланады:

Type


TinterfacedObject=class(TObject,IUnknown)

Private


Frefcount:integer;

Protected

Function QueryInterface(constIID:TGUID; outObj):integer;stdcall;

Function_AddRef:integer;stdcall;

Function_Relefse:integer;stdcall;

Public


Property RefCount:integer read FrefCount;

End;


Егер алдыңғы мысалда Tpainter класы төмендегідей сипатталған болса:

TPainter=class(TPaint)

ProcedureCirclePaint(Canva:Tcanvas; x,y,R:integer);

Procedure RectPaint(Canva:Tcanvas; x1,x2,y1,y2,R:integer);

End;

Онда компилятор TinterfaceObject класының QueryInterface_Add_Release әдістерін қосуды талап етер еді. Бұл кластың FrefCount өрісі интерфейстік объектіні шақыру есептегішінің қызметін атқарады және Windows схемасында қабылданғанындай пайдаланылады: Iunknow интерфейсінің Add әдісіне әрбір оралған сайын есептегіш 1-ге артады, ал Release әдісіне оралған сайын есептегіш 1-ге кемиді. Бұл өрістің мәні нольге тең болғанда интерфейстік объект жойылып, жадыдан алған орнын босатады.



Интерфейстік объектіге as типтерді келтіру операторын қолдануға болады, бұл жағдайда керекті интерфейс таңдалады:

Procedure PaintObject(P:TInterfacedObject)

Var x:IPaint

begin


Try

X:PasIPaint;

X.CirclePaint(PaintBox1.Canvas,0,0,20)

Except


ShowMessage('объект IPaint интерфейсін сүйемелдемейді')

End; end;

Мұндай меншіктеуді кездестіргеннен кейін компилятор код құрады және оның көмегімен Ipaint интерфейсіне сілтеме жасауды шақырылады. Егер объект көрсетілген интерфейсті сүйемелдемейтін болса, шектен тыс жағдай пайда болады.

қашықтықтағы объектіні пайдалануға есептелген интерфейстер глобальды бірегей идентификатормен жабдықталуы тиіс (Guid). Мысалы,

IPaint=interface

['{AYAFEB60-7705-11D2-8B-41-4444553540000}']

ProcedureCirclePaint(Canva:TCanvas; x,y,R:integer);

ProcedureRectPaint(Canva:TCanvas; x1,y1,x2,y2:integer);

End;

Implements қызметші сөзінің көмегімен программист кейбір класқа қандай да бір қасиетті қоса алады. Бұл қасиеттің типі интерфейс немесе класс болуы мүмкін. Егер қасиеттің типі интерфейс болса, бұл интерфейстің аты аталық кластар тізімінде көрсетілуі тиіс, яғни интерфейстік кластағыдай:

Type


IMyInterface=interface

Procedure P1; Procedure P2;

End;

TMyClass=class(TObject,IMyInterface)



IMyInterface=IMyInterface;

Property MyInterface:IMyInterface

Read FMyInterface implements ImyInterface;

End;


Мұнда мына мәселеге көңіл аудару қажет: мысалдағы TmyClass интерфейстік класс болып табылмайды, яғни Р1 және Р2 әдістері орындалатын класс.

Егер одан MyInterface өкілетті қасиетін анықтауды алып тастаса, онда ол интерфейстік болып табылады және MyInterface әдісін сипаттау қажет.

Өкілетті қасиетте міндетті түрде read болуы тиіс. Егер оның типі класс болса және ол сол хабарланған болса, оның басқа өкілетті қасеиттерінің болуы мүмкін емес.


6-ДӘРІС. Дайындаудың интегралданған ортасының құралдары


  1. кіріктірілген отладчик,

  2. жоба шолушысы,

  3. нысандар қоймасы,

  4. анықтама жүйесі.


Delphi –де графиканы пайдалану TGanvas класына негізделген (Ganvas –канва, сурет салу, кенебі). Түрлі суреттермен графиктер салу үшін TGanvas класына туындалған 3 класты пайдалануға болады: Windows шрифі үшін –Tfont, түрлі сызықтар сызу үшін Tpen және тұйық фигураларды бояу үшін- TBrush (font-шрифт, pen-қалам, brush-бояу жаққыш).

Tpen- перо обьектісін құрайды, сызық сызуға арналған.

Tpen- обьект шрифтты құрайды, кез-келген графиктік құрылғыға арналған (экран, принциптер, плоттера т.б)

Pixels қасиеттерінің көмегімен канвыдын бүкіл пикселі 2 түрдегі массив нүктесін көрсетеді.

Пиксельдің түрін өзгерту, қайтадан бейнені жеке-жеке нүктеде салуға болады.


Procedure Arc (x1, y1, x2, y2, x3, y3, x4, y4: Integer)

Доға элипст сызу (x1, y1)- (x2, y2) доғаның басы қиып өтуде жатыр,(x3, y3) нүктесінің центірінен өтеді, ақырында (x4, y4) центірінен бұрышқа дейін қилысады.см(а)

Procedure Chard (x1, y1, x2, y2, x3, y3, x4,y4: Integer)

Элипс сегментің сызу (x1, y1)- (x2, y2), бастапқы доға сегменті элипстің қилысуында жатыр(луча), центір нүктесінен (x3, y3) өтеді, ал сонында- қилысуы с лучом центірінің (x4, y4) нүктесінен өтеді. см(б)

Procedure Pie (x1, y1, x2, y2, x3, y3, x4,y4: Integer)

Секторлық элипсті сызу, (x1, y1)- (x2, y2), центірлік нүктесінен (x3, y3) жүргізілген, ал центірінің соңғы нүктесінен (x4, y4) жүргізілген. Доға сағат тіліне қарсы сызылады. Доғаның басы және соңы тура центірінде қилысады. см(в)

Procedure RowndRect (x1, y1, x2, y2, x3, y3, x4,y4: Integer)

Cызық сызады және тікбұрышты толықтырады (x1, y1)- (x2, y2) домалақ бұрыштармен. Тікбұрыш (x1, y1)- (x3, y3), доғаның бұрыштарының домалақтану- ының анықтайды. см(г)



Қасиет Тағайындама

Color Қаламұш арқылы салынған сызық түсі(15 түрлі)

Style Қаламұш арқылы салынған сызық стилі. Мүмкін мәндер:

psSolid (тұтас сызық), psPash(пунктирлік)

Width Пиксель өлшемі бойынша сызық қалындығы.


1-кесте. TPen қасиеттері.

Қасиет Тағайындама

Color Шрифт түсі

Name Шрифт атауы (мысалы, Times Kaz)

Style Шрифт стилі (жартылай қалың, курсив,т.б.) мысалы, программада шрифті жартылай қалың, курсив ету операторының жазылуы: Form 1. Canvas. Font. Style= [fsBold,fsItalic]





3-кесте. TBrush (негізгі қасиеті)


Қасиет Тағайындама

Color Бояу жаққыш түсі (объектінің боялу түсі)




4-кесте. TCanvas класының кейбір әдістері.

MoveTo(x,y:integer);

(х,у) нүктесіне қаламды орнату



LineTo(x,y:integer);

Қаламұштың ағымдық орнынан бастап, (х,у)нүктесіне дейін түзу кесіндісін сызу. Сызық түсі Pen.Color әдісімен анықталады.



Rectangle(x1,y1,x2,y2:integer);

(х1,у1)-(х2,у2)- тік төртбұрышын салу. Фигураның ішкі облысының түсі бояу жаққыш (Brush.Color) түсімен анықталады.



Ellipse(x1,y1,x2,y2): integer;

(x1,y1)-(x2,y2)- тік төртбұрышына сырттай сызылатын эллипс не шеңбер сызу. Элементтің ішкі облысының түсі бояу жаққыш түсімен анықталады.



TextOut (x,y: integer; ConstText: String);

(x,y) нүктесінен бастап мәтін жазу



Arc (x1,y1,x2,y2,x3,y3,x4,y4: integer);

(x1,y1)-(x2,y2)- тіктөртбұрышына сырттай сызылған элипс сегментін сызу






TGraphic және TPicture класы.

Delphi –да ең манызды орын алатын TGraphic және TPicture класы.

TGraphic-ол абстракты класс, инкапсуляцияланған жалпы қаиеттер және әдістер боп 3 мұра қалдырды : пиктограмма(Ticon), метофайлфы (TMetoFile) және расторового бейне (TBitmap).

TGraphic-тің жалпы ерекшелігі файлдарға сақталынады, берілген екі нақты фарматта.

Пиктограмма файлдарына көбінесе ICO кеңейтпесін пайдалынады.

Метафайл-бұл бейне, ол графиктік құрылғыда берілген арнайлы командалармен салынады, WMF немесе EMF мынадай кеңейтпедегі файлдарда сақталынады.
Интерфейстер

COM технологияда интерфейстер ең маңызды орын алады. (Component Object Model- компаненттік модель обьектісі). Олардың негізгі жұмысы-қасиеттерін жазу, әдістері және оқиғаларды жойылған манинадағы терминдік клиент обьект. Интерфейстің көмегімен клиент программасы обьектіні жоюға арналады, егерде оның өзінің меншік обьектісі болса.

Ескерту: Егерде интерфейс COM/DCOM немесе COBRA технологияда пайдаланылса, онда әдістер stdcall немесе (обьект үшін автоматтандырылады) жазылады.
7-ДӘРІС. Object Pascal тілі


  1. Негізгі ұғымдар;

  2. Мәліметтетрдің қарапайым типтері;

  3. Мәліметтердің құрылымдық типтері;

  4. Өрнектер;

  5. Қрапайым операторлар;

  6. Құрылымдық операторлар;

  7. Ішкі программалар.


Құрама және бос оператор

Құрама оператор дегеніміз- бұл begin … end қызметші сөздерінің арасына орналасқан программа операторларының тізбегі. Құрама операторлар Object Pascal- дың маңызды инструменті болып табылады, өйткені, құрылымдық программалаудың қазіргі технологиясы бойынша программа жазуға мүмкіндік береді.

Begin

….

begin



….

begin


end;


end;


end;


тұтасымен алғанда, begin … end сөздерінің арасына орналасқан барлық операторлар бөлімі бос операторды береді.

Ал бос оператор ешқандай әрекет атқармайды, тек программа жолына «;» белгісі қойылады.



Шартты оператор

Шартты оператор қандай да бір шартты тексеруге мүмкіндік береді, шартты тексеру нәтижесінде тәуелді қандай да бір әрекет орындалады. Сонымен, шартты оператор- бұл тармақталған есептеу процесінің құралы.

Шартты оператордың құрылымы төмендегідей:

If <шарт > Then <1-оператор> else <2-оператор>;

Мұнадғы If, Then, else- қызметші сөздер.

<шарт >- логикалық типті қандай да бір өрнек;

<1-оператор> және <2-оператор>- Object Pascal- дың кез келген операторлары.

Шартты оператордың орындалу алгоритмі төмендегідей. Алдымен, <шарт> шартты өрнек тексеріледі. Егер нәтиже true (ақиқат) болса, онда <1-оператор> орындалады да,<2-оператор > орындалмайды; егер нәтиже false (жалған) болса, онда керісінше <1-оператор> орындалмай,<2-оператор > орындалады. Мысалы,

Var

x, y, max :integer;



begin

If x>max then



y:=x;

else y:=max;

End;
Бұл фрагменттің орындалуы барысында Х айнымаласының мәні max-нан үлкен болса, онда У айнымалысына Х айнымалысын меншіктейді, кері жағдайда У айнымалысына max меншіктеледі.



Мүмкін болатын ақиқат немесе жалған екі мәннің біріне ие болатын өрнек шартты өрнек деп аталады. Мұндай өрнек айнымалыларды салыстыру операцияларының көмегімен жазылады: <, <= ,> ,>= , <>. Күрделі логикалық өрнектер and, or, not логикалық операцияларының көмегімен алынады.

Мысалы, if (a>b) and (b<>0) then …



Қайталау операторлары

Object Pascal тілінде қайталанатын программалар фрагментін программалауға мүмкіндік беретін үш оператор бар.

For параметрі қайталау командасы, оның құрылымы:

For < қайталау параметрі>:= <Бастапқы мән> to <соңғы мән> do <оператор>;

Мұндағы for, to, do қызметші сөздер (үшін, дейін, орында); <қайталау параметрі> -integer типті айнымалы; <бастапқы мән> және <соңғы мән>- бүтін типті айнымалылар.

<оператор>- Object Pascal-дың кез келген операторы.

Операторлың орындалуы: алдымен <бастапқы мән> өрнегі есептеліп, <қайталау параметрі>:=<бастапқы мән> меншіктелінуі орындалады.Одан кейін төмендегі опреациялар қайталанады:



  • <қайталау параметрі><= <соңғы мән> шарты тексеріледі;

  • шарт сақталмаса for операторының жұмысы аяқталады;

  • <оператор>- операторы орындалады;

  • қайталау параметрінің мәні бірге артып отырады.

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

Әзір қайталану командасы While

Бұл оператордың жазылу форматы:



While <шарт> do < оператор>;

мұндағы While, do қызметші сөздер(әзір [шарт орындалатын болса], орында); <шарт>- логикалық типті өрнек; <оператор>- Object Pascal тілінің кез келген операторы.



Егер <шарт> өрнегінің мәні true болса, онда <шарт> өрнегі есептелгеннен кейін <оператор> орындалады да, тексеру қайталана береді. Егер <шарттың> мәні жалған болса ( false), онда while операторы жұмысын тоқтатады.

Таңдау операторы

Таңдау операторы бірнеше әрекеттің ішінен таңдауға мүмкіндік береді. Таңдау жүргізілетін параметр ретіндегі өрнек үшін кез келген реттелген тип алынады (реттелген типке- integer, char, логикалық типтер жатады).

Таңдау операторының құрылымы төмендегідей:

Case <өрнек> of

< таңдау тізімі> [else <операторлар>]

end;

Мұндағы case, of, else, end -қызметші сөздер (жағдай, одан, әйтпесе, соңы); < таңдау тізімі> - бір немесе бірнеше төмендегідей құрылым:



< таңдау тұрақтысы>: <оператор>;

<оператор>- Object Pascal тілінің кез келген операторы. Таңдау операторының орындалуы төмендегідей.

Алдымен өрнек есептеледі, одан кейін таңдау тізімінен есептелген өрнектің мәніне тең тұрақты ізделінеді. Табылған тұрақтыға сәйкес оператор орындалып, таңдау командасы өзінің жұмысын аяқтайды. Егер таңдау тізімінен есептелген өрнектің мәніне тең тұрақты табылмаса, онда программаны басқару else операторынан кейін тұрған операторға береді. Кейде else <операторлар> бөлігін жабуға да болады.

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

Мысалы,


ch:char;

begin


...

case ch of

'n', 'N','н' ,'Н':=LbOutput.Caption:='Жоқ';

'y', 'Y', 'д', 'Д':=LbOutput.Caption:='Иә';

end;

Белгі және көшу операторы



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

Көшу операторының жазылу форматы төмендегідей:

Goto <белгі>;

Мұндағы Goto-қызметші сөз (белгіге көшу); <белгі>- белгі. Object Pascal тіліндегі белгі- бұл программаның қандай да бір операторын белгілеуге мүмкіндік беретін, еркін алынған идентификатор. Белгі белгіленетін оператордың алдына орналасады, белгіден кейін қос нүкте (:) қойылады. Операторды бірнеше белгімен көрметуге болады, бұл жағдайда олар бір-бірінен қос нүкте арқылы ажыратылады. Программада белгіні пайдаланудан бұрын оны сипаттау бөлімінде бейнелеп жазу қажет. Белгіні сипаттау үшін Label қызметші сөзі пайдаланылады.

Мысалы,



Label



Bel,lb1,lb2;

Begin



………

Goto lb1;

………..

Bel:……….


……………

Lb1:lb2:………….

Goto lb2;

………….


End;
Goto операторының қызметші программадағы басқаруды сәйкес белгіленген операторға беру болып табылады.

Белгіні пайдалануда төмендегідей ережелерді басшылыққа алу қажет:



  • Goto сілтеме жасайтын белгі бейнелеу бөлімінде сипатталуы және ол программа денесінде міндетті түрде кездесуі тиіс;

  • Қосалқы программада сипатталған белгі сонда жергілікетенеді, сондықтан қосалқы программаның сыртынан оның ішіндегі белгіге жасалған сілтеме орындалмайды.


8-ДӘРІС. Нысанды-бағдарланған программалаудың ерекшеліктері

  1. Класстар және нысандар;

  2. Өрістер;

  3. Қасиеттер;

  4. Әдістер;

  5. Хабарламалар мен оқиғалар;

  6. Визуалды компоненттер кітапханасы.

Кез келген жіберілген программа автоматты жан жақты төрт объектімен байланысты ол: Application (программа), Screen (экран), Printer (принтер), Clipboard (буфердің программа арасында ауысуы).

Application объектісі TApplication класында жатады, ол автоматты түрде кез келген программада жіберіледі.

Screen объектісі Тscreen класында инкапсуляцияланған қасиеті және әдісі. Printer объектісі автоматты түрде құрылады, егер де программада Printers модульдік сілтемеде көрсетілсе.

Clipboard – Windows - та Clipboart мәліметтер мен буфер программасында ауысу кең көлемде пайдаланады. Егер де Delphi программасы Clipboart –тік модульде, онда оған автоматты түрде Clipboart объектісіне енуге болады.

Кілт сөзді анықтау.

Help қызметі кілтік сөздерді іздеуге мүмкіндік береді. Басты бөлімде кілтік сөзді анықтау үшін (символдық текстің ең алдында ), латын әріпімен «К» немесе «к» Мысалы:

Открыть: текстік файл; Asil; текст;
Секция Options

Секция [Options] құралады немесе ауыса алады. Options батырмасының көмегімен Options батырмасын басқаннаң кейін көп бетті терезе ашылады.

General беті.

Default topic-идентификатор.

Help title- негізгі іздеу тересзесінде қызмет етеді.

Notes-қысылғыш таңдалса, онда компелятор мәселені хабарлайды.

Errors- кодтын қатесін көрсетеді.

Compession –беті нәтижелік файлды қысу арқылы байқалады.

Sorting –беті кілт сөзіне тіл әдістері өңделеді.

Longuage of Help file-кілт сөзді тілді өңдеу үшін пайдалынады.

Other-индексі бойынша тілді өңдейді.

Files –беті папкадағы файлдың жобасын анықтайды.

Help Files- HIP-файл нәтиже аты.

Log Files-ASCII-файл текстің аты.


Секция Windows

Секция Windows толықтырылған терезені іздеу жиынына қызмет етеді. Әр көрсетілген секция терезеде сипатталынады, түсімен, өлшемімен және тақырып.

Егерде секцияда 1 терезеде анықталмаса, онда Windows батырмасын басып диалог терезесін шақырамыз.

Greate жолында Windows named-қа терезе атын береміз.

Procedure-текстік процедураны шығаруға арналған.

Reference- іздеу терезесі.

Error massage-қатені шығаруға арналған.

Ескерту осы 3 түрдегі стандартты Windows-те терезесінде «қалың» рамка және заголовка мен құралады.

General беті.

Windows type- бірнешенің терезесінің ішінен ерте таңдалғанды шығарады.

Add- тізімдер терезесін шақырады, жаңадан терезе қосуға.

Remove-тізімнен терезені жояды.

Include-ASCII текстік файл тізімдеріне терезе қосады.

Title bar text-терезе заголовкасын анықтайды.

Comment-тәлкелік түсініктеме сақтайды.

Position –беті экранға шықпас бұрын, терезе өлшемін, қанша орын алып

Жатқаның анықтайды.

Height-терезе биіктігі

Weigth-терезе енің анықтайды.

Auto Sizer-батырмасын басқаннаң кейін ОК, Gancel батырмасы шығады.

Buttons –беті төменде орналасқан қосылғыштар терезеде сәйкес батырмасы қойылса.

Contents-мазмұны.

Index-индексі.

Find-поиск.

Help Topic- бөлімдері.

Back-артқа.

Options-параметрлары.

Brows-алдын-ала көру.

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

Секция MAP.

Бұл секцияда сандық идентификатор бөлімі анықталады, автаматты түрде Help батырмасы шақырылады және F1 клавишімен программа жұмыс істейді.

Ескерсек көшіру компоненті Delphi –де арнайы Help Context қасиеті бар, сандық идентификаторы бөлімін іздеу кітабын сығыстыруға болады. Бөлімдердегі [MAP] секцияда көрсетілген, компонентік-жіберілуі жұмыс істеу программасында.

MAP батырмасын басқаннаң кейін Ms HW терезесі пайда болады.

MAP topic тізімінде IDS to numeric values форматта бөлімдер көрсетіледі. Идентификаторды құру үшін жаңа бөлімдер немесе тізмнен жою MAР сәйкес ADD және Remove батырмасы пайдалынады.

Edit батырмасы жөндеу элемент тізімімен жұмыс істеуге мүмкіндік береді.

Секция Aliases.

Мына секцияда псевдонимін көрсетуге болады идентификатор бөлімімен, MAP секциясын модификациялау көмегімен RTF –файлыңын өзгеруінсіз. Тағайындау батырма Add, Remove, Include және Edit тағы сол сияқты, MAP секциясында да жүреді.


Секция Baggage.

Data Files батырмасы Ms HW тірізеден диалог терезесі ашылады, файлдың анықталуы, іздеу кітапханасыда пайдалынады. Осы файалдардың тізімі [Baggage] секциясын жоба файлын сақтайды.




Delphi-де программалау элементтері


  1. Тармақталу командасы. RadioButton компоненті.

Тармақталу командасының қысқа және толық нұсқалары бар. Олардың жазылу түрлері Турбо Паскальдағы сияқты:

1) if P then S //қысқа нұсқа

2) if P then S1 else S2 //толық нұсқа

мұндағы P– шарт; S,S1,S2- орындалуы тиіс сериялар (бір блоктық операторлар). Егер блок бірнеше операторлардан тұрса, олар бір құрама оператор ретінде қарастырылып, begi – end операторлық жақшылардың ішіне жазылады:

If P then begin

S1


End

Else begin

S2

End;


Блокқа енгізілген оператор тек біреу болса, оны операторлық жақшаларға алу міндетті емес.

Мысал. RadioButton компоненттерін пайдаланып, геометриялық фигуралардың аудандарының формулалары жөнінде анықтамалық программа құру керек.

1. Жаңа жоба ашу. Формаға Memo1, RadioButton1,…RadioButton4, BitBtn1,BitB2 компоненттерін орнату. (1 - сурет).

RadioButton - байланысты ауыстырып қосқыш компонент. Формада оның кемінде екеуі орнатылуы тиіс. Олар Checked қасиеті арқылы анықталатын тек екі күйде болуы мүмкін: True және False. жоба іске қосылып, көрінген формада қай ауыстырып қосқыш шертілсе (Check қасиетіне True мәні меншіктелсе), программада осыған сәйкес программа бөлімі орындалады.

1 - сурет Калькулятор үшін дайындалған



  1. Компоненттер қасиеттеріне мәндер меншіктеу:

Компонент

Қасиет

Мән

Form1
RadioButton1

RadioButton2

RadioButton3

RadioButton4

BitBtn1

BitBtn2


Caption

Font


Caption

Caption


Caption

Caption


Kind

Kind


Геометрия-анықтамалық

Tmes Kaz, 11

Үшбұрыш

Тіктөртбұрыш



Дөңгелек

Трапеция


BkOK

BkClose





  1. ОК батырмасын екі рет шертіп, батырманың OnClickоқиғасын өңдеуіш процедурасын құру:

Procedure Tform1.BitBtn1Click(Sender: TObject);

Begin


If RadioButton1.Checked then

Begin Memo1.Lines.clear;

Memo1.Lines.Add(S=ah/2);

Memo1.Lines.Add(‘a – үшбұрыш табаны, h - биіктігі’);

End;

If RadioButton2.Checked then



Begin Memo1.Lines.clear;

Memo1.Lines.Add(S=ab);

Memo1.Lines.Add(‘a – тіктөртбрыш табаны, b- биіктігі’);

End;


If RadioButton3.Checked then

Begin Memo1.Lines.clear;

Memo1.Lines.Add(S=Pi*r*r);

Memo1.Lines.Add(‘r- дөңгелек радиусы, Pi – 3,14’);

End;

If RadioButton4.Checked then



Begin Memo1.Lines.clear;

Memo1.Lines.Add(S=(a+b)*h/2);

Memo1.Lines.Add(‘a,b – тіктөртбрыш табаны, h- биіктігі’);

End;


End;

  1. Жобаны сақтап, - іске қосу. Көрінген формадан қажетті фигураның атауын таңдап, ОК батырмасын шерту. Мысалы, «Трапеция» қатарындағы ауыстырып-қосқыш орнатылса, өрісінде нәтиже көрінеді (1-сурет).



2. Таңдау командасы. StaticText, ComboBox компоненттері

Таңдау комакндасы – көп сериялы тармақталу командасы. Әдетте ол Турбо Паскальдағы сияқты (жағдай) операторын пайдаланып құрылады. Оператордың жазылу үлгісі:

Case <өрнек> of

1-тізім: begin

S1

End;


2-тізім: begin

S2

End;



……………

n-тізім: begin

Sn

End;


End;
мұндағы: «өрнек» мәні бойынша сәйкес тізім нұсқаулары (S1,S2,’,Sn)орындалатын өрнек;

k-тізім – таңдаушы.



Мысал. Таңдау командасын пайдаланып, арифметикалық төрт амалды орындайтын калькулятор программасын құру керек.

  1. Жаңа жоба ашып, форма бетіне ComboBox1, StaticText1, Edit1,Edit2, BitBtn1, BitBtn2 компоненттерін орнату. (2-сурет).

StaticText–мәтін шығаруға арналған компонент (оның орнына Label компонентін пайдалануға да болады); ComboBox - амалдарды таңдау үшін ашылатын тізім. Компоненттің Items қасиетін шерткен кезде String List Editor терезесі көрінеді. Осы терезенің жеке жолдарына амалдар операторларының тізімін енгізу керек.

(+,-,*,/);



  1. Компоненттер қасиеттеріне мәндер меншіктеу:

Компонент

Қасиет

Мән

Form1

Caption

Калькулятор

Edit1


Edit2

BitBtn1


BitBtn2

ComboBox1

StaticText1


Font

Text


Text

Kind


Kind

Text


Caption

Align


TimesKaz, 11

Бос ету


Бос ету

BkOK


BKClose

Бос ету


Бос ету

AlTOP





  1. ComboBox1 компонентінің Items қасиетін шертіп, ашылған String List Editor терезесіне +,/,*,/ операторларының әрқайсысын жеке жолға енгізу.

  2. ОК батырмасын екі рет шертіп, сәйкес оқиғаны өңдеуіш процедура құру:

Prozedur Tform1.BitBtn1Click(Sender:TObject);

Var z,x,y:real;

Begin

X:=StrToFloat(Edit1.text); y:= StrToFloat(Edit2.text);



Case ComboBox1.ItemIndex of

0: begin z:=x+y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;

1: begin z:=x-y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;

2: begin z:=x*y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;

3: begin z:=x/y; StaticText1.Caption:=Edit1Text+ComboBox1.Items[ComboBox1.ItemIndex]+’’+Edit2.Text+’ =‘ +FloatToStrF(z,ffGeneral,5,5); end;

end;


end;

  1. Жобаны сақтап, іске қосу. өрітеріне мәндер енгізіп, ComboBox1 тізімін орындалуы тиіc амалды таңдау және ОК батырмасын шерту. StaticText1 өрісінде нәтиже көрінеді (3-сурет).

2 - сурет Калькулятор терезесі

3. Цикл. Delphi–де циклдермен жұмыс стандартты Турбо Паскальдағы сияқты. While(әзірше), Repeat(дейін), For(үшін) циклдік құрылымдардың жазылу үлгілері:


    1. While P do

Begin

S

End;



    1. Repeat

S

Until (not P);



    1. For k:=k0 to kn do

Begin

S

End;



мұндағы Р – шарт; do - орындау, until – дейін (do, until - кілттік cөздер); S -цикл денесі;k - есептегіш (цикл параметрі); k0,kn - есептегіштің бастапқы, соңғы мәндері.

Мысалы, жалпы мүшесі ak=1/k2 (k=1,2…)тізбектің алғшқы бес мүшесінің қосындысын табу керек (n=5; Sn - ?).

Procedure Tform1.FormCreat(Sender: TOject);

Var s,a:real; k,n:integer; s1:string;

Begin

n:=StrToInt(‘’,’Мүшелер саны=’,’’));



s:=0; k:=0;

For k:=1 to n do

Begin

a:=FloatToStrF(s,ffFixed,7,3); ShowMessage(s1);



End;

  1. Жиындармен (массивтермен) жұмыс

Жиын (массив) – бір типті нысандар (объектілер) жиыны. Жиындар (массивтер) бір өлшемді (сызықтық), екі өлшемді (матрица) не көп өлшемді болуы мүмкін. Жиындарды сипатту Турбо Пакальдағы сияқты. Мысалы:

var


a:array[1..10] of integer; //бүтін сандар жиыны

b:array[3..8] of real; //нақтысандар жиыны

c:array[0..5] of string; //жолдық типті жиыны

Мартица – екі өлшемді жиын. Матрицаны сипаттаудың сызықтық жиынды сипаттаудан айырмавшылығы шамалы. Мысалы:

var

аa:array[1..10,1..10] of integer; //бүтін сандар матрицасы



bb:array[1..8,1..5] of real; //нақтысандар матрицасы

cc:array[0..5,0..3] of string; //жолдық типті матрицасы



Мысал. 100 метрлік қашықтыққа жүгіру барысында үш топтың әрқайсысынан үш студент іріктеп алынды. Олардың секөндпен өлшенген жүгіру нәижелері 1-кестеге енгізілген. Қайсы топтың студенттері бірінші орынға шықты? Орта есеппен олардың әрқайсысы 100 метрді қанша уақытта өтті?

12,69 13,25 12,98

14,05 13,16 13,08

13,32 14,27 14,02

1-кесте 1-топ 2-топ 3-топ

  1. Жаңа жоба ашып, формада Memo1, StringGrid1, BitBtn1, BitBtn2, Label1 компоненттерін орнату (4-сурет).

TstringGrid -ұяшықтарында кез-келген ұзындықтағы жолдық шамаларды орналастыруға болатын кестелік компонент.

Қасиет

Мағынасы

Cells[n,n]
ColCount

RowCount


GrigLineWidth

Fixedcos


FixedRows

FixedColor


ColWidth[i]

RowHeight[j]



n*m өлшемді кесте ұяшықтарының мәндері

Кестенің баған саны

Кестенің жол саны

Кесте сызылатын сызықтың қалыңдығы

Ерекше жолдар саны

Ерекше бағандар саны

Ерекше жолдар мен бағандар түсі

i-бағанның ені

j-жодың биіктігі

Компоненттер қасиеттеріне мәндер меншіктеу:



  1. Код терезесінде батырмасын оқиғасын өңдеуіш процедурасын құру.

Компонент

Қасиет

Мән

BitBtn1

BitBtn2


StringGrid1
Label1

Memo1


Kind

Kind


FxedCols

FxedRows


Caption

Strigns


bkOK

bkClose


1

1

бос ету



бос ету

Procedure Tform1.BitBtn1click(Sender: TObject);

Const n=3;

Var nomer,k,I,j:longint;

S:array[1..n,1..n] of real; //матрица
P:array[1..n] of real; //қосындылар жиыны

Min:real; nomerT:string;

Begin

{кесте құру}



StringGrid1.Font,Name:=’Times Kaz’;

StringGrid1.ColCount:=n+1;

StringGrid1.RowHeight:=n+2;

StringGrid1.Cells[0,n+1]:= ‘Орт.жылд.’;

For I:=1 to n do

Begin


P[i]:=0; //қосыенды жиынға бастапқы мәндер меншіктеу

StringGrid1.Colwidth[i]:=60;

StringGrid1.Cells[0,i]:=’ ‘+FloatToStr(i);

StringGrid1.RowHeight[i]:=15;

StringGrid1.Cells[I,0]:=’’+FloatToStr(i)+’топ’;

End;


{енгізілген элменттерді мартица ретіндек құу және экранға шығару}

k:=0;


for I:=1 to n do

for j:=1 to n do

begin s[i,j]:=StrToFloat(memo1.Lines[k]);

StringGrid1.Cells[I,j]:=’ ’+Memo1.Lines[k]; k:=k+1;

End;

{топ студентетрінің орташа жылдамдықтарын анықтау}



for I:=1 to n do

begin for j:=1 to n do

p[j]:=p[j]+s[j,i];

end;


for I:=1 to n do

StringGrid1.Cells[I,n+1]:=’ ‘FloatToStrF(p[i]/n,ffGeneral,4,2);

{бірінші орынға қай топ шыққанын анықтау}

min:=p[1];

nomer:=1;

for I:=111 to n do

if p[i]

begin min:=p[i];

nomer:=I;

end;


nomerT:=IntToStr(nomer);

Label1.Font.Size:=10;

Label1.Caption:=’1 – орынға’ +nomerT+ ‘топ шыққан’+#13+#13+’Орташа жылдамдығы:’’+FloatToStrF(min/nffGeneral,4,2);

End;


Жобаны сақтап, іске қосу. Форма көрінеді. Memo1 терезесіне топтар көрсеткіштерін кезекпен енгізіп, ОК батырмасын шерту. Нәтиже алынады(4-сурет).

3 - сурет Жарыс нәтижесі

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

9-ДӘРІС. Визуалды компоненттер


  1. TControl базалық класы.

  2. Қасиеттер.

  3. Оқиғалар.

  4. Әдістер.

Delphi7 oртасында ішкі программаларды пайдалану жолдары көрсетіледі. Бұл тақырып бойынша негізгі түсініктерді және ұғымдарды беруде оларды жаттықтырушы есептермен бекітіп отырған қолайлы болады. Мыалдарды күрделі емес, ықшам етіп, және 1-мысалды екі тәсілмен (процедура мен функция) көрсету оқушылардың тез түсінулеріне ықпал етеді деп ойлаймыз. Енді оқушыларға 2-мысалды функциямен, 3-мысалды процедурамен шығаруды талап етуге болады. Содан кейін оқушыларға жеке орындауға арналған тапсырмалар ұсынылады. Оқушыларға теориялық мағлұматтарды нәтижелі меңгерту үшін осындай практикалық жаттығу есептерін олардың орындалу іс-әрекетін ретпен көрсету арқылы ұсыну қолайлы деп есептейміз.



Компоненттер дегеніміз жұмыс істейтін программада құрылатын, көрінетін бейнелер тұрғызылатын элементтер болып табылады. Компоненттер палитрасының ішінде бейне ретінде көрінбейтін де компоненттер жеткілікті. Сонымен, бұл тарауда біз Delphi ортасының негізгі компоненттеріне тоқталамыз.
3.1. SТANDARD беті
SТANDARD бетінде программа құруға ең қажетті Windows-ге арналған стандарты интерфейстік элементтерден тұратын компоненттер палитрасы орналасқан.

3.1-сурет. Sтandard беті.
Frame – басқа компоненттерді орналастыруға арналған контейнер қызметін атқарады (қызметі форма терезесімен бірдей). Формадан айырмашылығы компоненттерге дайындық құра отырып, компоненттер палитрасында орналасады.

MainMenu – Программаның бас менюі. Бұл компонент күрделі иерархиялық меню құрып жұмыс істеуге мүмкіндік береді.

Label – форманың бетіне мәтін шығаруға аранлаған. Компоненттің қасиеті мәтіннің түрі мен орналасуын анықтайды.

Edit – енгізу өрісі – символдар жолынжөндеуге арналған.

Button – командалық батырма.

Memo – бірнеше жолдан тұратын мәтіндік редактор құру элементі болып табылады.

RadioButton – қызметі басқа батырмалардың қызметімен байланысты болатын тәуелді батырма болып табылады. Егер сұхбат терезесінде бірнеше ауыстырып қосқыш пайдаланылатын болса, онда әрбір топты RadioGroup компоненті арқылы беруге болады.

CheckBox – басқаларға тәуелсіз ауыстырып қосқыш батырманы сипаттайды.

ListBox – қажетті элементті таңдауға болатын тізімді береді.

ComboBox – енгізу өрісіне мәліметтерді клавиатурадан теріп енгізуге немесе тізімнен таңдауға мүмкіндік береді.


    1. ADDITIONAL беті

Additional бетінде сұхбат терезелерінің түрін түрлендіруге мүмкіндік беретін 18 қосымша компоненттер орналасқан.



3.2 – сурет. Additional беті.
BitBtn – жазуы бар, пиктограммалы командалық батырма.

SpeedButton – пиктограммалық батырма. Әдетте бас менюдің опцияларына жылдам кіру үшін пайдаланылады.

MaskEdit – арнайы мәтіндік редактор. Енгізілген мәтінді сүзгілеуге мүмкіндік береді, мысалы, датаны дұрыс енгізу үшін қажет.

StringGrid – жолдар кестесі. Бұл компонент мәтіндік ақпаратты кесте түрінде шығаруға мүмкіндік береді.

DrawGrid – еркін кесте. StringGrid компонентінен айырмашылығы бұл компоненттің ұяшықтарында кез келген ақпарат, оның ішінде сурет те сақталады.

Image – сурет. Бұл компонент суреттерді, оның ішінде пиктограммалар мен метафайлдарды бейнелеуге арналған.

Shape – фигура. Бұл комполненттің көмегімен терезеге дұрыс геометриялық фигураларды – тіктөртбұрыш, шеңбер, эллипс және т.б. қоюға болады.

Bevel – жиек. Терезенің жеке бөліктерін үш өлшемді қоршаумен немесе жолақпен ерекшелеуге арналған.

ScrollBox – орағыш жолақтар панелі. Panel компонентінен айырмашылығы – егер орналасқан компоненттер оның шекараларымен қиылыспаса, онда орағыш жолақтарды автоматты түрде қояды.

CheckListBox - жиынтық таңдаулар тізімі. Стандартты ListBox компонентінен айырмашылығы әрбәр опциясының қасында бірнеше опцияны бірден таңдауды жеңілдтетін CheckBox тәрізді тәуелсіз ауыстырып қосқышы бар.

Splitter – шекара. Бұл компонент формада көрінетін екі компоненттің арасында орналасады да, пайдаланушыға программаны жүргізу кезінде компоненттерді бір-бірінен бөліп тұрған шекараларын алмастыруға мүмкіндік береді.

StaticText – статикалық мәтін. Стандартты Label компонентінен айырмашылығы өзінің жеке Windows терезесінің болуымен сипатталады. Ол мәтінге қоршау жүргізуге мүмкіндік береді.

ControlBar – басқару жолағы. DRAG&DOG технологиясында «тақалып» тұратын компоненттерді орналастыратын контейнер қызметін атқарады.

ApplicationEvents – оқиғаны қабылдаушы. Егер бұл компонент формаға орналасқан болса, онда програмсмаға арналған барлық Windows хабарламаларын алып отырады.

ValueListEditor – атау = мән жұбынан тұратын жолдар редакторы. Мұндай жұптар Windows-де жиі пайдаланылады.

LabeledEdit- бір жолдық редактор мен белгінің комбинациясы.

ColorBox – жүйелі түстердің бірін таңдауға арналған арнайы ComboBox варианты.

Chart – диаграмма. Бұл компонент мәліметтерді графикалық жолмен беруге арналған арнайы панельдер құруды жеңілдетеді.

ActionManager - әрекеттер менеджері. Төмендегі үш компонентпен бірге қосымшалар, интерфейс құруды қамтамасыз етеді.

ActionMainMenuBar – меню жолағы, ол оның опциялары ActionManager көмегімен құрылады.

ActionToolBar – ActionManager компонентінің көмегімен құрылатын пиктографиялық батырмаларды орналастыруға арналған жолақ.

CustomizeDLG баптау сұхбаты. Бұл компоненттің көмегімен пайдаланушы жұмыс программасының интерфейсін қалауынша баптай алады.


    1. WIN 32 беті

WIN 32 беті 32 разрядты WINDOWS 95/98/NT/2000 операциялық жүйелерінің интерфейстік элементтерінен құралады. (бұл 2-нұсқада WIN 95 деп аталады).



3.3 - сурет. WIN 32 беті.
TabControl – қойымталар жиынтығы. Әрбір қойымта жазуы немесе суреті бар тіктөртбұрышты өріс болып келеді. Қойымтаны таңдау программа арқылы жүргізіледі және терезедегі компоненттер жиынтығын басқару үшін пайдаланылады.

PageControl – қойымталары бар панельдер жиынтығы. Әрбір панельдің өзінің инерфейстік элементтер жиынтығы бар. Ол өзіне байланысты қойымтаны тышқанмен белгілеу арқылы жүзеге асырылады.

ImageList – суреттер жиынтығы. Өлшемдері бірдей бірнеше суретерді сақтауға мүмкіндік береді.

RichEdit – форматталған мәтінге арналған көп жолдық редактор. Memo компонентінен айырмашылығы RichEdit компонентіндегі мәтін Кеңейтілген Мәтіндік Формат ережесіне бағынады (RTF – RICH TEXT FORMAT) және шрифт, түс, туралау тәрізді сипаттамаларын өзгерте алады.

TrackBar - регулятор. Программадағы кейбір шамалардың мәндерін басқару үшін пайдаланылады. Мысалы, оның көмегімен мультимедиалық программалардағы дыбыстың дауысын оңай өзгертуге болады.

ProgressBar – процесс индикаторы. Бұл компоненттің көмегімен ұзақ уақыт орындалатын процестің атқарылуын бейнелеуге болады. Мысалы, мәліметтерді дискетке көшіру барысы.

UpDown – цифрлық регулятор. Бұл компоненттің екі батырмасы компонентке байланысты сандық мәнді үлкейтуге немесе кішірейтуге арналған.

Hotkey – басқару клавиші. Компонент басқару клавиштерін енгізу үшін пайдаланылады.

Animate – мультипликатор. Бірінен кейін бірі ауысып отыратын қозғалыстағы суреттерді (видеоклип) бейнелеуге арналған. Компонент дыбысы бар видеоклипті сүйемелдей алмайды.

DateTimePicker - күн, уақыт селекторы. Бұл компонент күнді немесе уақытты енгізіп, бейнелеуге арналған.

TreeView – таңдау тармағы. Пиктограммалардың тармақты құрылыммен байланысқан жиынтығын береді. Әдетте каталогтар құрылымын және басқа да иерархиялық қатынаспен байланысқан элементтерді көру үшін пайдаланылады.

ListView – пиктограммалар панелі. Бірнеше пиктограмаларды көруді және қажеттісін таңдауды ұйымдастырады. Бұл компонент пиктограммаларды тігінен немесе көлденеңінен орналастырып, оларды үлкейтіп немесе кішірейтіп көрсетеді.

HeaderControl – басқарушы тақырып. Жазуы бар секцияларға бөлінеген, тік немесе көлденең жолақ болып келеді. Секциялардың өлшемін програмам жұмысы кезеңінде тышқанмен өзгертуге болады. Әдетте әртүрлі кестелердегі жолдар мен бағандардың өлшемін өзгерту үшін пайдаланылады.

StatusBar – статус панелі. Жөндеу терезесінде әртүрлі нұсқау беретін ақпараттарды орналастыруға арналған.

ToolBar – саймандық панель. Бұл компонент Bitbtn командалық батырмалары үшін контейнер қызметін атқарады. Сондай-ақ, олардың өлшемдерін және батырмаларды өшіргендегі немесе жаңасын қосқандағы орнын автоматты түрде өзгерте алады.

CoolBar – саймандық панель. ToolBar компонентінен айырмашылығы WINDOWS-дің Edit, ListBox, ComboBox және т.б. тәрізді стандартты интерфейстік компоненттерін орналастыруға арналған контейнер ретінде пайдаланылады.

PageScroller – айналатын панель. Жіңішке саймандық панельдерді орналастыруға мүмкіндік береді. Қажеттілігіне қарай панельдің жиегіне орағыш стрелкаларды автоматты түрде орналастырады.

ComboBoxex - ComboBox компонентіне ұқсас, бірақ ашылатын тізімге шағын бейнелерді бейнелеуге мүмкіндік береді.
3.4. SYSTEM беті
Бұл бетте басқару қызметі бар компоненттер келтірілген, оның ішінде Windows үшін стандартты OLE (Object Linking and Embedding) және DDE (Dinamic Data Exchange) мәліметтерімен алмасуды сүйемелдейтін де компоненттері бар.

3.4-сурет. System беті
Timer – таймер. Бұл компонент шынайы уақыт аралығын есептеу қызметін атқарады.

PaintBox – сурет салуға арналған терезе. Графикалық бейнелерді салуға арналған тіктөртбұрышты бөлік құрады.

MediaPlayer – мультимедиалық ойнатқыш. Бұл компоненттің көмегімен әртүрлі мультимедиалық құрылғылар басқарылады.

OleContainer – OLE – контейнер. Байланыстырылатын немесе енгізілетін объектілерді қабылдау қызметін атқарады.


    1. DIALOGS беті

Dialogs бетінің компоненттері Windows үшін стандартты сұхбат терезелерін жүзеге асырады.



3.5-сурет. Dialogs беті.
OpenDialog – ашу. Стандартты «файлды ашу» сұхбат терезесін шығарады.

SaveDialog – сақтау. Стандартты «файлды сақтау» терезесін шығарады.

OpenPictureDialog – суретті ашу. Суретті алдын ала көру мүмкіндігін сақтай отырып, графикалық файлды таңдайтын арнайы терезені шығарады.

SavePictureDialog – суретті сақтау. Суретті алдын ала көру мүмкіндігін сақтай отырып, графикалық файлды сақтайтын арнайы терезені шығарады.

FontDialog – шрифт. Шрифті таңдайтын стандартты сұхбат терезесін шығарады.

ColorDialog – түс. Түсті таңдайтын стандартты сұхбат терезесін шығарады.

PrintDialog – басып шығару. Құжатты басып шығаруға арналған параметрлерді таңдау сұхбат терезесін шығарады.

PrinterSetupDialog - принтерді баптау. Басу құрылғысын баптауға арналған стандартты сұхбат терезесін шығарады.

FindDialog – іздеу. Мәтін фрагментін іздеуге арналған стандартты сұхбат терезесін шығаруға мүмкіндік береді.

ReplaceDialog – Мәтін фрагментін іздеу мен алмастыруға арналған стандартты сұхбат терезесін шығаруға мүмкіндік береді.


    1. SAMPLES беті


Gauge – қалып күй индикаторы. Win32 бетіндегі ProgressBar компонентіне ұқсас, бірақ формалардың әртүрлілігімен ерекшеленеді.

3.6-сурет. Samples беті.
ColorGrid – түстер кестесі. Бұл компонент 16 түсті палитрадан негізгі және фондық түсті таңдауға арналған.

SpinButton – қос батырма. Қандай да бір сандық шамаларды басқарудың ыңғайлы құралы.

SpinEdit – сандар редакторы. Қос батырманың көмегімен бүтін сандарды өзгерту мүмкіндігімен бірге бейнелеу және жөндеуді қамтамасыз етеді.

DirectoryOutline – каталогтар тізімі. Дискідегі иерархиялық құрылыммен орналасқан каталогтарды бейнелейді.

Calendar - календарь. Айдағы күнді таңдап, көрсетуге арналған.
10-ДӘРІС. Мәтінмен жұмыс істеу

  1. TStrings класы;

  2. Жазбаларды қолдану;

  3. Біржолды редактор;

  4. Көпжолды редактор;

  5. Редактрлеу компоненттерінің жалпы элементтері.

  6. Тізімдерді қолдану.

Қазіргі уақытта мектепте жаңа компьтерлер келген кезде программалау жүйелерін таңдау мүмкіндіктерінің шеңбері біршама кеңейді. Бұл Turbo Pascal 7.0, Visual Basic, Delphi, C++. Бұл тізімді әрі қарай да жалғастыра беруге болады.

Жалпы білім беретін орта мектептің жоғары сыныптарында информатика пәнін оқытуда, объектілі бағдарланған программалау негіздерін қарастырамыз. Object Pascal тілі – Delphi ортасындағы негізгі программалаушы құрал болып табылады. Бұл бөлімнің негізгі тақырыптарының бірі ішкәі программаларме нжұмыс істеу іскерліктері екендігі белгілі. Бұл тақырыпты меңгеру оқушыларға көбінесе қиындық туғызып отырады. Сондықтан теориялық мағлұматтар мен жаттғу есептерін тиянақты берудің оқу процесінде өзіміз қолданып жүрген тәсілін ұсынамыз.

1   2   3   4   5   6   7   8   9   ...   16


©dereksiz.org 2016
әкімшілігінің қараңыз

    Басты бет