Delphi программалау ортасы

Автор работы: Пользователь скрыл имя, 12 Ноября 2014 в 09:08, реферат

Краткое описание

Обьектіге бағдарлы оқиғалық программалау тілінде программаның жұмысы негізінен оқиғалар тізбегінен және түрлі обьектілердің осы оқиғаларға жауабынан тұрады. Олардың визуальды түрлері – visual Basic тілі Qbasic программалау тілі негізінде, Delphi (Делфи) обьектілі Паскаль (Object Pascal) тілі негізінде Windows операциялық жүйесін басшылыққа алып құрылған (visual - көзбен көру, экрандық). Олар, әсірісе, Delphi программалау тілі - кез-келген қосымшаны дайындауға болатын жылдамдығы тез, қуатты тіл.

Содержание

1. Кіріспе
2. Delphi-ді іске қосу. Delphi ортасы
3. Проект. Форма.Қасиеттер. Қасиеттер терезесі
4. Оқиғалар

Вложенные файлы: 1 файл

Delphi программалау ортасы.docx

— 224.98 Кб (Скачать файл)

                                     Until-дейін (кілттік  сөз);

                                    K-бүтін  типті  есептегіш  (цикл  параметрі);

                                      k0 , kn   -есептегіштің  бастапқы  ,  соңғы  мәндері.

 

 

Көмекші программалар

Жоспар:

1. Көмекші программалар

2. Функция

3. Модуль құру

 

1. Көмекші программалар

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

Программада осындай қайталануларды болдырмауға болады.  Бұл үшін программада бірнеше рет қайталанатын инструкциялар қатарын көмекші программа ретінде жариялап, қайталанған жерлеріне осы көмекші программаны шақыру инструкциясын қойып шығу керек.

Көмекші программаны қолданудың артықшылықтары бар. 1-шіден, программада кодтың қайталануы болмайды, демек программа құруды жеңілдетеді, әрі өзгерістер енгізу және отладка жасау процессін ыңғайлы етеді.  2-шіден, прогамманың сенімділігі біршама артады.  Көмекші программаларды тек қайталануды болдырмау үшін ғана қолданбайды. Үлкен мәселені бірнеше кіші ішкі мәселелерге бөліп, әр мәселені көмекші программа ретінде құру ыңғайлы. Бұл жағдайда программаның «оқылуы» жақсарады, әрі отладка процессі оңайланады.

Көмекші программа – бұл жалпы ортақ мәселенің бір бөлігін шешетін кішігірім программа. Delphi-де көмекші программаның екі түрі бар: процедура және функция

Әрбір көмекші программаның атауы бар, ол оны программа ішінде шақыру үшін қолданылады.

Функцияның процедурадан айырмашылығы мынада: функция атауына мән (функцияның нәтижелік мәні) байланыстырылған, сондықтан функцияны өрнек операндасы (мысалы меншіктеу) ретінде қолдануға болады.

Көмекші программаның әдетте, параметрлері бар болады. Олар формальді және нақты болып бөлінеді.

Функцияны жариялағанда көрсетілетін параметрлер формальді деп аталады. Процедураны шақыру инструкциясында көрсетілетін параметрлер нақты деп аталады.

Параметрлер

  • көмекші программаға берілгендерді жіберу үшін

  • көмекші программаның нәтижесін алу үшін 

қолданылады.

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

 

2. Функция

Функция — бұл көмекші программа, яғни, бір ғана ортақ атау берілген инструкциялар қатары. Функцияның инструкцияларына өту процессі функцияны шақыру деп аталады.  Функцияның инструкцияларынан программа дағы осы функцияны шақыру инструкциясына өту  - функциядан қайту деп аталады.

Жалпы түрде функцияны шақыру инструкциясы мынадай көріністе болады:

Айнымалы := Функция (Параметрлер) ;

Мыналарға көңіл аудару қажет:

  • әрбір функция белгілі бір типтегі мәнді қайтарады, сондықтан функцияның мәні меншіктелетін айнымалының типі функция типіне сәйкес болу керек;

  • әрбір нақты функция үшін параметрлер сан мен типі қатал анықталған.

 

Жалпы түрде функцияның жариялануы мына көріністе болады:

function Атау (параметр1 : тип1, ..., параметрК : типК) : Тип;

var   // мұнда локал айнымалылардың сипатталуы

begin

// мұнда функция инструкциялары

Атау := Өрнек;

end;

Мұнда:

  • function — Delphi тілінің қызметші сөзі, ол өзінен кейін функция инструкциялары жазылатындығын білдіреді;

  • атау — функция атауы. Программадан функция инструкцияларына өту үшін қолданылады;

  • параметр — мәні функция мәнін есептеу үшін қолданылатын айнымалы. Кәдімгі айнымалыдан айырмашылығы, ол var сөзімен басталатын айнымалыларды сипаттау бөлімінде емес, функцияның атауында сипатталады. Нақты мәніне параметр программаның жұмысы барысында негізгі программадан функцияны шақыру нәтижесінде ие болады;

  • тип — функцияның шақырған программаға қайтаратын мәнінің типі.

Төмендегі мысалда  isint және isFioat функциялары келтірілген.  isint функциясы редакторлау өрісіне бүтін санды енгізу барысында басылған перне символы рұқсат етілген не етілмегендігін анықтайды. Сандар, <Enter> , <Backspace> пернелеріне рұқсат етілген деп есептеледі. IsFloat функциясының міндеті де осындай, бірақ, бөлшек сандар үшін. IsFloat функциясының екі параметрі бар: басылған перне коды және редакторлау өрісіне енгізіліп қойылған символдар қатары.

Функцияға мысал  // бүтін санды енгізу кезінде енгізілген символдың

// рұқсат етілген не етілмегендігін анықтайды

function Islnt(ch : char) : Boolean;

begin

if (ch >= '0'} and (ch <= '9')  // сандар

or (ch = 113)   // <Enter> пернесі

or (ch = #8)   // <Backspace> пернесі

then Islnt := True  // символ рұқсат етілген

else Islnt := False;  // рұқсат етілмеген символ

end;

// бөлшек санды енгізу кезінде енгізілген символдың

// рұқсат етілген не етілмегендігін анықтайды

function IsFloat(ch : char; st: string) : Boolean;

begin

if (ch >= '0') and (ch <= '9')  // сандар

or (ch = #13)   // <Enter> пернесі

or (ch = #8)   // <Backspace> пернесі

then

begin

IsFloat := True; // дұрыс символ

Exit; // функциядан шығу

end;

case ch of

'-': if Length(st) = 0

then IsFloat := True; ',':

if (Pos(',',st) = 0)

and (st[Length(st)]'>= '0') and (st[Length(st)] <= '9')

then // бұрын енгізілмеген болса үтір белгісін цифрдан соң  енгізуге болады

IsFloat := True; else // басқа символдарға рұқсат етілмейді

IsFloat := False;

end;

end;

 

3. Модуль құру

Delphi программистке өз функциялары мен процедураларын жеке модульге орналастыруға, бұдан соң осы модульдің процедура мен функцияларын программада пайдалануға(uses модульдер тізімінде өз модулінің атауын көрсету керек) рұқсат етеді.

Модуль құру үшін форма мен модуль терезесін жабу қажет ( сақтауды ұсынған терезеде No –ді таңдау қажет, яғни, жабылған форманың модулін сақтау керек емес).  Бұдан соғ File мәзірінен New -> Unit командасы таңдалады. Нәтижеде код редакторының терезесі ашылады. Мұнда қалыптастырылған модуль шаблоны бар. Оның мәтіні төменде келтіріледі.

Модуль шаблоны

unit Unit1;

interface

implementation

end.

Модульді сақтау кезінде Unit1 атауы программист берген атауға автоматты түрде алмастырылып қойылады.

Interface бөліміне  басқа модульдер шақыра алатын осы модульдің процедура мен функциялары жарияланады.

Implementation (реализация) бөліміне interface бөлімінде жарияланған процедуралар мен функциялар орналастырылады.

Модуль File-> Save командасымен сақталады. Мұндай модульдерді жеке папкаға (мысалы Units атауымен) сақтаған дұрыс. 

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

 

 

Объектілі-бағдарлы программалау тәсілі.

Жоспар:

1. Объектілі-бағдарлы программалау тәсілі жөнінде

2. Мұрагерлік. Инкапсуляция. Полиморфизм.

 

1. Объектілі-бағдарлы программалау тәсілі жөнінде

Бейсик, Паскаль сияқты дәстүрлі программалау тілдерінде күрделі, үлкен программаларды дайындаудың кемшілігі – ол үшін программалаушылар тобының көп күш жұмсауы қажет болатын. Программалауды жеңілдету үшін 80-жылдары  объект, класс (object, class) ұғымдары енгізіліп, объектілі – бағдарлы программалау (ОБП) тәсілі негізге алынды. ОБП – Паскальда қолданылатын процедуралық және құрылымдық программалаудың және модуль құрудың дамытылған түрі. Ол берілгендерді белгілі бір абстракциялық деңгейде көрсетіп, модульдік программалауды пайдаланады. Мысалы, Visual Basic программалау жүйесі объектілі программалау тәсілін пайдаланып, Qbasic тілі негізінде визуальды түрде құрылған. Паскальдың  ОБП тәсілін пайдаланып құрылған жаңа нұсқасы  Object Pascal (Объектілі Паскаль) деп  аталады. Delphi осы тілдің негізінде дайындалған. Объектілі программалаудың ыңғайсыздығы – онда дәстүрлі программалау тәсілдері пайдалана берілмейді, бірақ ондағы көп қиындықтар арнайы тәсілдерді пайдалану арқылы тез шешілген.

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

Өрістер – Турбо Паскальдағы жазу (record) типінің өрістері сияқты;

Қасиеттер – объект сипаттамалары (параметрлері);

Тәсілдер – кластың өрістері мен қасиеттерін өңдеу процедуралар

мен функциялар;

объект – түрлі мәндердің қасиеттері тәсілдерінің жиынтығы;

оқиға – объект жағдайының өзгеруі.

Класс - өрістер, қасиеттер және тәсілдерінің бірлігінен тұратын тип, не, жалпы түрде, өңдеу тәсілдері не қасиеттері ортақ түрде сипатталатын объектілер (нысандар) жиынтығы.

Жүйе объект үшін жадтың динамикалық облысынан арнайы орын қалдырады. Яғни, шын мәнінде, объект жай айнымалы емес, ол – жадтың динамикалық облысының кездейсоқ адресін сақтайтын көрсеткіш. Бірақ программада оған Турбо Паскальда пайданылатын көрсеткіш белгісі (^) енгізілмей жазылады.

Объект құрылған кезде автоматты түрде конструктор (constructor) деп аталатын тәсіл шақырылып, ол объектіні динамикалық облыста орналастырады, динамикалық жадтан объектіні арнайы деструктор (destructor) тәсілі жояды.

Сонымен, ОБП –да пайдаланылатын объект сөзінің екі мағынасы бар: нақты объект (мысалы, геометриялық дене, формада орнатылған компонент, т.б.) және айнымалы (абстрактты, дерексіз объект). Delphi-де екінші объект нақты класс данасын анықтайды.

Класқа иерархиялық (бағынышты, жоғарыдан төмен) кластардың енуі де мүмкін. Мысалы, геометриялық фигуралар класы жазық фигуралар және кеңістік фигуралары болатын екі ішкі кластық фигураларға бөлінеді. Ал жазық фигуралар класы төбелері бар (үшбұрыш, көпбұрыш) және төбелерсіз (шеңбер, эллипс) болып екі ішкі класқа бөлінеді. Объектілі программалауда барлық кластар иерархиялық түрде негізгі Tobject  класынан тарайды (Tobject à Tpersistent à Tcomponent à …). Әдетте негізгі  класты аталық, бағыныңқы кластарды ұрпақ не сәбилік кластар деп атайды (Tobject – барлық кластардың арғы атасы, Tcomponent – барлық иерархиялық компоненттердің жоғарғысы  (компонент деп Tcomponent класының мұрагері болатын класс данасын атайды)). Әр ұрпақ өзінің аталық класының мүмкіндіктерін (өрістерінің, қасиеттерінің, тәсілдерінің сипаттамаларын) қабылдайды. Мысалы, Tobject класының  Create (бастапқы мән меншіктеу (инициалдау)) тәсілі барлық ұрпақ кластарға тиісті (Tobject класында конструктор Create деп  аталады). Әр ұрпақ өзіне қосымша жаңа мүмкіндіктер (сипаттамалар) қосып, келесі ұрпақтарға беруі мүмкін.

Delphi –де класс атауын Т әрпінен бастау келісілген. Формаға енгізілген компонент данасын сандық индекс қосылған класс атауымен аталады.

 

Ұрпақ кластың сипатталу түрі:

 

type

<ұрпақ класс атауы> = class (<негізгі класс атауы>);

end;

 

var

< объект > : < класс атауы>;

 

мұндағы класс мүшелері - өрістер, қасиеттер және тәсілдер.

Мысалы,

 

type

Tform1= class (TForm)

Button1 : TButton;

Label1 : TLabel;

Procedure Button1 Click (Sender : TObject);

end;

 

var  Form1 : Tform1;

 

TForm1 = class (TForm)  жазуы Tform класының үлгісімен құрылатын жаңа (ұрпақ)   TForm1 айнымалысы – класс данасы.

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

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

Delphi құрамына жүздеген дайын кластар енгізілген. Әр компонент қатаң түрде тек бір класқа ғана тиісті. Мысалы, Delphi – де форма (TForm)  компоненті - Forma класына тиісті, осы типті айнымалы (Form1) – класс объектісі. Класс бөлігі ретінде сипатталып, модульдің

Inplementation (іске асыру) бөлігінде мәтіні жазылатын сәйкес процедура - тәсіл, мысалы, procedure TForm1.Button1Click.

Форма ішіне орналастырылған  TЕdit  компонентінің  Edit1 данасын (объектісін) екі рет шерткен кезде пайда болатын оқиғаны өңдеу тәсіліне (процедурасына) мысал:

 

procedure  TForm1.Edit1Click(Sender : TObject);

 

begin

Edit1.Text:=’Сіз редакциялау өрісін екі рет шертіңіз’;

end;

 

программаны іске қосу командасы берілген соң компилятор автоматты түрде негізгі модульге енгізілген төмендегі екі тәсілді орындайды:

Application.CreateForm(TForm1, Form1);

Application.Run;

Бұлардың біріншісі жадта Form1 объектісін құрады (объектіні инициалдайды), екіншісі Application объектісіне қосымшаның негізгі формасын іске қосуға нұсқау береді (Run). Жоғарыда жазылған процедураның орындалу нәтижесінде форманың  Edit1 өрісіне оның Text қасиетіне меншіктелген мәтін жазылады.

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

TForm1.Button1.FontSize:= 14;

Мұндағы иерархияның бірінші объектісі – форма (Form1), екінші объект – формада орнатылған  Button1 түймесі, үшінші объект – түйменің шрифт қасиеті; команда – форманың  Button1 объектісіне енгізілген  FontSize (шрифт өлшемі) айнымалысына 14 мәнін меншіктеу. Яғни, объектілер арасына қойылатын нүкте сәйкес иерархиялық объектіге сілтеме.

 

2. Мұрагерлік. Инкапсуляция. Полиморфизм.

ОБП –да класс үшін мұрагерлік, инкапсуляция және полиморфизм принцптері енгізілген.

Мұрагерлік-программада негізгі класс типінің ұрпақ иерархиялық кластарда да сақталуы. Мысалы.көлік, жеңіл жүк машинасы т.б..     болып бөлінеді. Олардың жұмыс істеу жағдайына байланысты, сипаттамаларына ортақ және бөлек өрістер, қасиеттер мен тәсілдер енгізілуі мүмкін. Әр қайсысында тип элементтерін толық сипаттау тиесілі емес. Бірінің типін аталық (негізгі) етіп қабылдап, екіншісіне қосымша қасиеттерді енгізу жеткілікті.Delphi-дің барлық кластары TObject класына  мұрагер.

Информация о работе Delphi программалау ортасы