Бадарламалау тілін сипаттау

 

Delphi – де программалау екі процесті зара тызыз рекеттесуінен трады: прогамманы визуалды крінісін ру жне программаа толы ажетті басаруды беру шін программа кодын жазу процесі. Код жазу шін код терезесі пайдалынылады, программа ру шін алан терезелер, оны ішінде форма терезесі пайдалынады.

Форма мен код терезесіні мазмны арсында здіксіз байланыс болады. Формаа компонентті орналастыру программа кодыны автоматты згеруіне келеді жне керісінше автоматты немесе олмен ойылан код фрагменттерін шіру сйкес компоненттерді шіруге келеді. Сондытан програмистер алдымен форма рады, ажет болан жадайда код фрагментін жазуа кшеді.

Aйтылaн тaлaптapды ecкepe oтыpып, oйылaн eceптi шeшyдi кeлeci инcтpyмeнтaлды paлдapы мeн дicтepi aнытaлды:

олданушыны идентификаторы белгіні атын, траты (констант), айнымалы, процедура, функция жне мліметтер типін белгілеу шін олданылады. Бл аттар бадарламашыны (программист) зі береді жне ол келесі ережелерге сай келу керек:

Идентификатор ріп немесе санмен (цифр) рылады.

Идентификатор барлы уаытта ріппен басталады, тек 0 – 9999 диапазонында орналасан бтін сан болатын белгі кірмейді.

Идентификаторда кіші жне бас ріптерді олдануа болады, компилятор оларды бірдей абылдайды. Арнайы символдарды пайдалануа болмаандытан оларды демілік шін басты ріптермен жазуа болады. Мысалы, NumberLmes немесе btnOpen.

Бадарламада екі идентификаторларды арасына е кемінде бір блгіш (разделитель) болуы керек.

Кесте 1 Бадарламада олданылатын нысаналар жайлы нысана кестесі

Нысана атауы Нысана типі (класс) Нысанны атаратын ызметі Нысанны олданылан асиеттері мен дістері асиеттер мен дістерді сипаттамасы
Button1, TButton арапайым батырма Caption Батырманы мтіндік белгішесі
OnClick Батырманы басандаы іс-рекет
Label1, Label2,   TLabel Мтінді жазып, пішінге шыару. Caption Жазбаны мтіндік белгішесі
SrtingGrid1 SrtingGrid2 TSrtingGrid Экранамассивэлементтеріненгізужнешыару   Name компонент аты
ColCount Кесте баандарыны саны.
RowCount Кесте жолдарыны саны.

 

НББ – ды негізінде класс (class) жне объект деген ымдар жатыр. Object Pascal – да класс деп - ріс, діс жне асиет деген ымдардан тратын арнайы типті айтамыз. Класты ары- тегі болып объект деп аталатын, ескірген Turbo Pascal тіліні типі жатады. Объект Turbo Pascal тіліне Delphi-ді рана дейін кіргізілген ым. Object Pascal тіліні жаа нсасында пайда болан Delphi ортасында объектілер ескі бадарламалы німмен йлесімділік шін саталан. азір объектіні олдану маызды емес.

Класс з кезегінде нсаышты береді. Біра ол дстрлік нсаыша араанда ерекше типті нсаышы: онда класа атынаанда "^" символын олдануа болмайды.

Класс –берілгендер мен олара олданылатын рекеттерден трады.

Объект – класты физикалы іске асырылуы (класты экземпляры).

Класс зінше бір сипатталатын тип болып табылады жне типтерді жариялау блімінде жарияланады.

Аталы класс нсалан
Мысалы:

type

TForm1 = class(TForm) { TForm1- TForm класыны рпа - класы}

{Аталы класты рісін, дісін жне асиеттерін иемденеді}

Button1: TButton; {ріс}

Button2: TButton; {ріс}

L1: TLabel; {ріс}

L2: TLabel; {ріс}

procedure Button1Click(Sender: TObject); {діс}

procedure FormActivate(Sender: TObject); {діс}

private

{ Private declarations }

public

{ Public declarations }

end;

Класс бір жаынан жазба (record) – типіне де сайды, ол берілгендерді рісінен ана емес,

Мысалы:

private

FCaption: String; {жолды типті рісі}

FModified: Boolean; {логикалы типті рісі}

Сол себепті класта оны сипаттамалары мен тртібі сипатталан.

Объект – белгілі бір класа сай келетін айнымалыны береді жне айнымалыны жариялау блімінде сипатталады. Мысалы:

var

Form1: TForm1;

Барлы кластара сай келетін объектіні ра беруге болмайды. Оларды біратары сіресе барлы кластарды иерархиялы аашыны басында орналасаны бны орындауа ммкіндік бермейді, немесе оларды негізінде рылан объектілер жмыс істеуге абілетсіз болып келеді, мысалы TObject аымды класы. Ол мынамен байланысты, мндай кластар сол немесе баса аяталан объектіні жан – жаты сипаттамасын бермейді (мысалы шін, жиазды тек лгісін ана руа болмайды, ал наты стл, наты орынды жне т.б. руа болады). Мндай кластар абстрактілі кластар деп аталады, сондытан олара абстрактілі дістер сай келеді. Бл ерекшелігіне арамастан, мндай кластарды ру тиімді, йткені бл кластарда барлы рпатарында кп рет айталамайтындай барлы кластара тиісті жалпылыты жинатауа болады.

НББ ш негізгі асиеттермен сипатталады:

- инкапсуляция (encapsulation),

- туындау (inheritance),

- полиморфизм (polymorphism).

рбір класс екі ерекше дістен трады – конструктор жне деструктор. Конструктор объектіні ру жне оны инициализациялау шін таайындалан. Мселен, Object Pascal тілінде объект динамикалы рылым болып табылады жне айнымалы-объект берілгендерден емес олара сілтемеден трады. Конструктор объектіні динамикалы жадыда лестіреді жне объектіні рісіне алашы мнін меншіктейді. Соан байланысты тізбектелген типті рісі алашы мн ретінде 0 – ді алады, жолды тип ретінде – бос жол, нсаыш рістер - nil мнін, тадау - рісі - Unassigned мнін алады. Одан баса, конструктор динамикалы жады блінгеннен кейін рылан объектіге сілтемені Self айнымалысына орналастырады. Барлы класс нсіздікпен Self айнымалысынан трады, ол автоматты трде класта жарияланады.

Деструктор, конструктора арама – арсы ым, ол класты данасын жоюа арналан, яни жадыны объектіні бзу жне жойылатын объектімен бос емес блігін босату. TObject базалы класыны жне оны рпатарында конструктор мен деструктор Create (ру) жне Destroy (жою) сйкес аталады. Бл класта сонымен атар Free дісі жарияланан, ол алдымен адресті корректілігін тексереді (объект шын мнінде жзеге асырылан ба ?) жне содан кейін барып ана Destroy дісін шаырады. Егер объект конструктормен рылмаан болса, онда деструктора атынау ерекше жадайды генерациясына кеп соады. Мндай байланыста Destroy дісіні орнына Free дісін олданан жн болады.


 

АРНАЙЫ БЛІМ

 

 

2.1 Бадарлама сипаттамасы

 

Формаа Label1, Label2, StrіngGrіd1, , StrіngGrіd2, Button1компоненттерін орналастыру. StrіngGrіd1 компонентіні асиеттеріні мндерікестеде крсетілген.

«Массивті егізу жне min max орнын ауыстыру» батырмасын басу нтижесінде автоматты тре StrіngGrіd1 жне StrіngGrіd2 толтырылады.

Массив элементтері айталанбауы шін арнайы функция пайдаланды (сурет 5).

Begin

Repeat

StringGrid1.Cells[I, j]:=IntToStr(Random(300));

A[i, j]:=StrToInt(StringGrid1.Cells[I, j]);

Until not (a[I, j] in d);

D:=d+[a[I, j]];

End;

 

Сурет 5 Массивтегі эллементтерді айталанбауын амтамассыз ететін бадарламалы код

 

Шыыс апарат ретінде пайда болан екінші массивті алуа болады. Бл массивтіmax жне min элементтерді орнын ауыстырлып, жаа массивке нтижені анааттандырып шыып транын круге болады.

 


 

2.2 Бадарламаны жмыс істеу сызбасы

 

Программаны блок-схемасы (сурет 6).

 

Басы

 


For(i=0;I<n;i++)

 


For(j=0;j<n;j++)

max=a[0][0] min=a[0][0]

max_i=0 max_j=0

енгізу a[i][j] min_i=0 min_j=0

 

 


For(i=0;I<n;i++)

 


For(j=0;j<n;j++)

 

max<a[i][j] a[ max_i][max_j]=min

a[ min_i][min_j]=max

 

max=a[i][j]

max_i=i

max_j=j

 

 


min>a[i][j]

 


For(i=0;I<n;i++)

min=a[i][j]

min_i=i

min_j=j For(j=0;j<n;j++)

 

 


шыару a[i][j]

 

 


 

егізу с

 


 

с=1

 

 

соы

Сурет 6. Берілген есепті блок сызбасы

Блок-схема; flowchart — енгізу-шыару жне шешім абылдау операциялары шін стандартты графикалы кескіндер жинаын пайдаланатын программаны зірлеу тсілі. Блок-схемасы рекеттерді жзеге асырылу тізбегін крсетеді.

Блок-схемасы кбінесе баса дістер (мысалы, шешімдер бтаы немесе шешімдер кестелері) арылы дайындалады.

Жйелі талдауда андай да бір лкен жобаны зірлеуді алашы сатысында блок-схема пайдаланылады. Мысалы,лкенэлектронды машинанызірлеу кезінде. Мндай блок-схемада машинамен де,операторменде жзеге асырылуа тиісті рекеттерді тізбегі крсетіледі.

Блок-схемасы программа жзеге асыруа тиісті адамдарды анытау шін ызмет етеді.

детте, блок-схема кіріс-шыыс сигналдарын, іске асыратын рбір алуан трлі кіріс мліметтеріні рекеттерін, программаны секцияа блуді жне пернетатадан берілетін команда бойынша программа зілетін нктелерді белгілеуден басталады.

 

2.3 Идентификатор кестесі

 

Идентификатор ріп немесе санмен (цифр) рылады.

Идентификатор барлы уаытта ріппен басталады, тек 0 – 9999 диапазонында орналасан бтін сан болатын белгі кірмейді.

Идентификаторда кіші жне бас ріптерді олдануа болады, компилятор оларды бірдей абылдайды. Арнайы символдарды пайдалануа болмаандытан оларды демілік шін басты ріптермен жазуа болады. Мысалы, NumberLmes немесе btnOpen.

Бадарламада екі идентификаторларды арасына е кемінде бір блгіш болуы керек.

Кесте 2

Идентификатор Масаты Типі Дрежесі
a:array[1..10,1..10] Массив Санды 100(2) массивті бір элементі шін
I Циклді басару айнымалысы Санды
min Массив элементтеріні е кішісі Санды  
max Массив элементтеріні е лкені Санды  
n Жолдар саны Санды  
m Баандар саны Санды  
buf осымша айнымалы Санды  
imax Е лкен санны жол бойынша орналасу орны Санды  
jmax Е лкен санны баан бойынша орналасу орны Санды  
imin Е кіші санны жол бойынша орналасу орны Санды  
jmin Е кіші санны баан бойынша орналасу орны Санды