Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК ВП. казПОС.doc
Скачиваний:
91
Добавлен:
01.05.2015
Размер:
6.47 Mб
Скачать

2.2. Дәрістік сабақ конспектілері

1-Дәріс.Визуалды программалауға кіріспе

Жоғарғы деңгейлі программалау тілдері жарыққа шыға бастағаннан бері көптеген программалаутілдері пайда болды. Қәзіргі кезде олар процедуралық, логикалық және объектілі —бағдарлы болып үш түрге бөлінеді. Мысалы, дәстүрлі ("классикалық") процедуралық программалаутілдері —Фортран, Бейсик, Паскаль, логикалық тілдер -ЛИСП, Пролог. Есептеуіш техниканың қарқынды дамуы және программалық жабдықтауды тиімді дайындауға кажеттілік нәтижесінде соңғы кездерде Windowsортасында жарыққа шыққан және объектілі - бағдарлы программалау(ОБП)негізінде құрылған програм­малаутілдері —Borland C++for Windows, Object Pascal және визуальдыMicrosoft Visual Basic, Borland Delphi.

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

Delphi-дің бірінші нұсқасы 1994жылы жарыққа шығып, кейінгі жылдары оның бірте-бірте кеңейтілген 2, 3, 4, 5, 6, 7-нұсқалары жарық көрді. Мысалы,5-нұсқа 1999жылы, 6-нұсқа 2001жылдың мамыр айында жарыққа шықты. 6,7-нұсқалардың бір-бірінен айырмашылығы жоқ деуге болады, екеуі де Windows32 операциялықжүйесінің негізінде дайындалған. Тек, Delphi 7, оған қоса, 1991жылы жарық көрген, салыстырмалы арзан, Linex операциялық жүйесінін негізінде де жұмыс істей алады (Linex жүйесі UNIX операциялықжүйесіне шамалас, мүмкіндігі Windows32 жүйесінің мүмкіндігінен кемемес). Delphi 7-да интернет үшін қосымшаларды дайындау мүмкіндігі кеңейтілген және берілгендер қорымен жұмыс істеуде кейбір өзгешіліктер енгізілген.

Дәстүрлі Паскаль оқып үйренуге жеңіл және MS DOS жүйесінде программа дайындауға ең жақсы құрылымдық программалау тілі екені белгілі. Delphi-де Паскаль тілінде орындау мүмкін және мүмкін емес күрделі процестерді программалауға болады. Delphi-дің негізгі ерекшелігі - онда қосымша құруда компоненттік және объектілік тәсілдер пайдаланылады (Windows ортасында пайдаланатындықтан, Delphi-депрограмманы көбінесе қосымша деп атайды). Бұл програм­малаутехнологиясында нағыз революция жасадыдеуге бола­ды.Компоненттік тәсілдің мәнісі жеңіл: әр қосымша кітапханасы программалау ортасындадайындалып, арнайы іс-әрекеттерді орындайтын компоненттер элементтерінен жинақталады. Олар жеткіліксіз болса, объектіні өндеуге арналған үстеме программакұрылады. Delphi-деқолданылатын негізгі кітапхананы визуальды компоненттер кітапханасы (VCL, Visual Component Library) деп атайды. Компоненттерпанелінде топ-тобыменжинақталған, жүздеген кластарға тиісті, стандартты компоненттер бар.Пайдаланушы жаңа компонентдайындап, оны осы панельге қосуына да болады.

Delphi Windowsжүйесінде программалаудың ыңғайлы құралы. Онда көптеген операторларды пайдаланып программа дайындау, программамәзірін құру, анимация, мультимедиапроцестерін ұйымдастыру, OLE технологиясын пайдаланып, басқаофистік қосымшаларды шақыру, олармен жұмыс істеу және т.б. іс-әрекеттерді орындау дамумкін. Көптеген операторлардың жазылуы ТурбоПаскальдағы сияқты.

Delphi құрамында дайындалған компиляторәдеттегі Р кодқа емес, бірден машиналық кодқа компиляциялайды. Осысебепті, кәзіргі кезде ол дүние жүзіндегі компиляторлардың ең жылдамы. Оның компиляциялау жылдамдығы Паскальда компиляциялаудан 10еседен артық, бір минутта шамамен 120мың жолдан асады.

Delphi екі түрде дайыңдалған: біріншісі - күрделі қосымшаны бірлесіп дайындаушылар ушін (Delphi Client - Server), екіншісі -қалған программалаушылар үшін (Delphi for Windows). Соңғысы ыңғайланып, қысқартылып алынған түрі. Ол тек маман программалаушылар емес, барлық Delphi- мен жұмыс істеушілерге арналған. Әдетте пайдаланылатыны — екінші түр.

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

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

Delphi-ді іске қосу. Delphi ортасы

Windows терезесі арқылы Delphi-ді іске қосу командасы:

Іске қосу - Программалар - Borland Delphi 7-Delphi 7

Экранда Delphiортасының үш терезесі керінеді (2.1-сурет).

2.1-сурет. Delphi ортасы

  1. - Delphi 7-тің негізгі терезесі;

  2. - Форма (Form1);

  3. - Объект инспекторы терезесі (ObjectInspector).

Жалпы, ортада программа құруға арналған төртінші, мо­дуль терезесі де іске қосылады (Unit1.pas). Форматерезесінің астында орналасатындыктан, ол алғашқыда көрінбенді.

Delphi-дің негізгі терезесінің құрамына негізгі мәзір, аспаптар панелі және компоненттер палитрасы енгізілген (2.2-сурет). Негізгі мәзір пунктгеріне (ішкі мәзірлерге) Delphi жұмыс істеу команпдалары, аспаптар панеліне ішкі мәзірлерге енгізілген негізгі командаларды орындайтын түймелер орналастырылған.

2.2-сурет. Delphi-дің негізгі терезесі

Стандартты түймелер:

- New(Жаңа);

- Open(Ашу);

- Save (Сақтау);

-Open Project(Проектіні ашу);

-View Form (Форманы көрсету);

- Run(Іске қосу):

- Pause(Үзіліс);

-Add file to Project(Проектіге файл қосу), т.б.

Проект. Форма. Қасиеттер. Қасиеттер терезесі

Delphi-де дайындалатын программа проект (жоба) деп аталады. Форма – программаны дайындау алдында ашылатын,программаның сұхбаттық терезесі. Delphiалғашқы рет іске қосылған кезде форма Form1атауымен (тақырыбымен) көрінеді (2.1-сурет). Оның жиектеріне тышқан көрсеткішін орналастырып, ол екі жақты нұсқама түріне айналған кезде жылжыту және қалдыру тәсілі бойынша форманы кеңейту неқысу киын емес.

Құрылатын программада пайдалану үшін формада түрлі компоненттер (формакомпоненттері) орнатылады. Негізгі компонентгердің кейбірі Accessберілгендер қоры жүйесінде пайдаланылатын элементтер панеліне енгізілген түймелер сияқты. Олар Delphi терезесінің компоненттер палитрасына орналастырылған.

Кей жағдайларда экранда формакөрінбеуі мүмкін. Оны экранға шығару үшін View-Formsкомандасын беружеткілікті.

Форманың және формаға енгізілетін компоненттердің (компоненттержөнінде келесі такырыптарды караңыз) түрлі касиеттері бар (оларды компонент "паспорты" деп те атайды). Қасиет (сипаттама, параметр) -айнымалылардың ерекше түрі. Олар объектінің түрлі мүмкіндіктерін сипаттап, ағымдық күйін аныктайды. Мысалы, формақасиеттерінің мәндері - форматакырыбының мәтіні, өлшемі, экранда орналасуы, түсі т.б. Delphiіске косылған кезде формакасиеттеріне алғашқы сәйкес мәндер меншіктеліп қойылады.

Форманы не онда орнатылған компонентті программақұру үшін дайындауоның кейбір касиеттерінің мәндерін өзгертуден басталады. Қасиеттер тізімі Объект инспекторы (Object Inspector)терезесіне енгізілген. Тізімді инспектортерезесіне шығару үшін сәйкес объектіні (форманы не формада орнатылған формакомпонентін) бір шерту арқылы тандау керек. Инспектортерезесінің жоғарғы қатарына тандалған объектатауы дажазылып койылады. Мысалы, Delphiіске қосылған кезде форманың ашылған касиеттер терезесі 2.1-суретте көрсетілген. Терезенің екі қосымша беті бар:Properties(Қасиеттер) және Events(Оқиғалар). Терезеашылғанда екі бағанға енгізілген жазулардан тұратын оның Propertiesбөлімі ашылулы тұрады (2.1-сурет). Бірінші бағанда көрінетіндер -қасиет атаулары, екінші бағанға сәйкес жазылғандар —олардың мәндері.

Форма қасиеттері;

Name (Amay) - формаға берілген атау. Ол Delphiобъектілерінің (компоненттердің) негізгі касиеттерінің бірі. Delphi-дің жұмыс істеуі кезінде ол объектіні осы атау бойынша ажыратып таниды. Delphi-дің формаға автоматтытүрде алғашқы рет меншіктеген атауын (Form1)өзгертіп, басқа атауберуте болады. Форманың іс-әрекеті атауынан белгілі болуы үшін атауды мазмұнға жақын етіп енгізген жөн. Мысалы, форма квадраттендеуді шешуге пайдаланылатын болса, Form1 opнына KvTend атауын енгізу. Ол үшін касиеттер терезесінен Name атауынтаңдап, жаңа атауды клавиатура арқылытеріп алса болғаны. Терілген атау Name жолының оң қатарынажазылып қойылады.

Font (Шрифт) — формаға енгізілетін мәтін шрифтін орнату қасиеті. Оны тандап, оң жағында көрінген көп нүкте (...)түймесін шерткен кезде сұхбаттық шрифт: таңдау терезесі көрінеді (2.3-сурет). Терезеден, әдеттегідей, қажетті шрифт типін, өлшемін тандап (мысалы, Times Kaz, 10),OK түймесін шерту керек.

2.3-сурет. Шрифт таңдаутерезесі

Caption(Тақырып, бетіне жазу) — форматерезесінің тақырыбына енгізілетін мәтін. Алғашқы кезде қасиеттер терезесінің Caption қасиетіне тақырып үшін Formlсөзі енгізіліп қойылған. Оны "Redactor" не басқатақырыпқа алмастыру Nameқасиетіне мән меншіктеу тәсілі сияқты (қасиет мәні енгізілген соң КҚ (каретканы қайтару, енгізу) клавишін басып қойған жөн).

Color(Түс) —форманың түсін орнату қасиеті. Ол таңдалған кезде оң жағында тілсызық түймесі көрінеді. Тілсызық түймесі —қасиет мәнінің бірнеше екенінің белгісі. Тілсызық белгісін шерткенкезде мәндер (түстер) терезесі ашылады. Тізімде көрінген қалаған түсті шерткен соң формасәйкес түске боялып қойылады.

Width (Ен), Height(Биіктік) пиксельөлшем бірлігімен берілген форманың ені мен биіктігін орнату қаснеттері (бұл мәндер форманы қолдан кеңейту не сығукезінде де автоматты түрде орнатылып қойылады).

Объект қасистін программа (программалық код) ішінде орнату дамүмкін. Мысалы, форма тақырыбышрифтінін өлшемін 14 етуүшін программаға Forml.FontSize := 14 меншіктеу операторын енгізуге болады.

Жалпы, бір қасиетмәнімен танысу үшін оны қасиеттертерезесінде таңдап, F1клавишін басуарқылы сәйкес анықтаманы шақыру керек. Dеlphi-де анықтамалар ағылшьш тілінде жазылған. Ол түсініксіз болса, экранда орысша аудармасын көрсететін "Сократ 97"сияқты арнайы дайындалған программамыпайдаланған жөн (мұндай программа Компьютерге орнатылса, оны пайдалануқиын емес).

Экранда қасиеттер терезесі көрінбесе, оны шығару үшін View-Object Inspector командасын беружеткілікті. Ол F11клавиші басылған кезде декөрінеді.

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

1. Delphi-ді іске қосу тәсілі. Delphiіске қосылғанда пайда болатын және көрінетін терезелер. Олар не үшін кажет?

  1. Delphi терезесінде орнатылған негізгі мәзірдің ішкі мәзірлері. Оларға қандай командалар енгізілген?

  2. Delphi терезесінің аспаптарпанеліне енгізілген негізгі түймелерді атап шығыңыз. Олар кандай іс-әрскеттерді орындайды?

  3. Проект, форма дегеніміз не? Delphiіске қосылған кезде формакандай атлумен көрінеді?

  4. Форма көлсмін өзгеріуге арналған қандайтәсілдерді білесіз? Оларды орындаңыз.

2-Дәріс Оқиғалар. Программалық код терезесі.

Windows-тағы сияқты Delphі-дe программалар оқиғалар арқылы басқарылады. Мысалы, пайдаланушы программақұру үшін алдымен формаға компонент орнатуы, форманы не фор­мадаорналастырылған компонентті тышқан арқылы шертуі мүмкін. Оның әр іс-әрекеті оқиға шақырады. Яғни, оқиға -программаның жұмыс істеуі кезінде объектжағдайының өзгеруі.

Delphi-де әр оқиғаға атау беріліп койылған. Мысалы,компоненттер палитрасының Buttonтүймесі арқылыформада орнатылған Buttonlкомпонентін шерту Click(Шерту) оқиғасын шақырады.

Әр объектіге байланысты оқиғалар жеткілікті Мысалы, форматқа байланыстыоқиғалар саны — 35(2.4-сурет). Олар қасиеттер терезесінін Eventsқосымша бетіне енгізілген. Терезеде оқиға атауларнның алдына Onпрефиксі (қосымшасы) тіркестіріліп жазылған. Ол -атаудың оқиға екендігін білдіретін белгі.

2.4-сурет. Форма оқиғалары

Delphi ортасында жиі кездесвтін оқиғалар:

OnClick — тышқан түймесін бір рет басу;

OnDblClick - тышқан түймесін екі рет басу;

OnKeyDown - клавишті басу;

OnKeyUp — басылған клавишті босату;

OnMouseDown — тышқан түймесін басу;

OnMouseUp — тышқан түймесін босату;

OnMouseMove — тышқан көрсеткішін жылжыту;

OnCreate — форманы екі рет шерту, т.б.

Delphi-де программа (проект)екі бөлімнен тұрады: алғашқыда автоматты түрде project1 атауы берілетін проектфайлы (негізгі модуль) және unitl.pas атауыберілетін модуль. Оларжеке терезелерде орналастырылған.Модульге окиғаларға сәйкес іс-әрекеттерді орындайтын программамәтіні (процедуралар) енгізіледі (олар 2.4-тақыръшта кең түрде қарастырылған). Программамәтінін программалық код деп,терезені прогрлммалық код терезесі не қысқаша редактор терезесі деп те атайды. Delphi іске қосылган кезде ол форматерезесінің астында көрінбей тұрады. Оны экранға шығару тәсілдері:

  • форманы жабу (жабу түймесін шерту);

  • код терезесінің бір шеті форма астында көрініп тұрса, оны шерту. Терезе белсендірулі түрде ашылады да, ондапроцедура дайындамасы (үлгісі) көрінеді. Оның тақырыбы нүкте аркылы бөлінген классжәне процедура атауларынантұрады (2.5-сурет), т.б.

Жалпы, формадан код терезесіне өту және код терезесінен форматтаөту үшін F12клавишін басужеткілікті. 2.5-суретте көрініп турғаны — код терезесіне енгізілген процедура дайындамасы. Оқиғаға байланысты құрылатын процедура оқиғаны өндеуіш не оқиғаны өндеу процедурасы делінеді. Процедура дайындамасының жазылу түрі:

Procedure <атау> (Sender : TObject);

сипаттау бөлімі

begin

процедура денесі

end;

мұндағы Sender параметріқұрылатын процедураньң қай класқатиістілігін анықиайды.

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

2.5-сурет. Редактор терезесі. Онда көрінген процедурадайыңдамасы

Программа құрылымы. Негізгі модель. Модуль. Әдіс

Ксз келіен программаprogramсөзінен басталатын проектфайлы мен бір не бірнеше модульдерден тұрады да, қолдан құрылатын программа модульішіне енгізіледі. Проект файлыdpr, модульpasкеңейтілуі бойынша сақталады. Проектфайын негізгі модуль деп атайды. Негізгі модульдің мазмұны проектінің жалпы сипаттамасынан тұрады. Delphiіске қосылган кезде оны ол автоматты түрде дайындап шығады. Негізгі модульге ерекше жағдайлардан басқакездерде қосымша нұсқаулар енгізудін кажеті жоқ. Негізгі модуль (проект):

program Project 1;

uses

Forms,

Unitl in 'Unitl.pas' {Forml};

{$R *.RES}

begin

Application. Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Модуль - түрлі іс-әрекеттерді орындауға арналған про­грамма бөлімі. Модуль тақырыбы Unit (модуль) кызметші сөзінен басталып, сонына әдеттегідей нүктелі үгір (;) таңбасымен аяқталатын модуль атауы жазылады. Delphi-дің модульге алғашқы рет меншіктейтін атауы: Unit1.Жаңа проекташылған кезде модульдайындамасы да автоматтытүрде құрылады:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs;

type

TForm1 = class(TForm)

Private{ Private declarations }

Public{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

end.

Негізгі әдебиеттер:1[17-25],4[25-35]

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

  1. Қасиет дегеніміз не?Форманың негізгі қасиеттері, оларды өзгерту тәсілдері.

  2. Object Inspector терезесі . Онда орнатылған қосымша беттер мен мазмұндары. Экранға қасиеттер (Object Inspector) терезесін шығару тәсілдері.

3. Оқиға дегеніміз не? Delphiортасында жиі қолданылатын оқиғаларды атап шығыңыз. Оқиғаны өндеуіш программасының дайындамасын дайындаудың негізгі тәсілі.

4. Программа жазылатын терезе атауы. Оның алғашқы рет ашылған кездегі көрінісі. Процедура дайындамасын объектінің қасиеттер терезесі арқылы орнатутәсілі.

5.Негізгі модуль дегеніміз не,оның құрылымы. Негізгі модуль тақырыбы. Uses кілттік сөз құрамына енгізілген нұсқаулар.

6. Әдіс дегеніміз не?Негізгі модульге қандай әдістер енгізілген, олардын іс-әрекеттері?

3-Дәріс Берілгендерді енгізу және шығару.

Delphi-де айнымалымәнін жадқа енгізу үшін ТурбоПаскальда пайдаланылатын Read (оқу) операторыжоқ. Программада ол үшін басқатәсілдердің қолданылуы мүмкін:

  1. меншіктеу командасы;

  2. енгізу терезесін пайдалану;

  3. форманың Edit компоненті өрісін пайдалану.Меншіктеу командасының программада жазылуы әдеттегідей, мысалы,х := 4.7; .

Енгізу терезесі Delphi-дің стандартты InputBoxфункциясының терезесі. ПрограммадаInputBox (енгізу қорабы) функциясын пайдалану командасының жазылу үлгісі:

<айналымы>:=InputBox('<тақырып>’, ‘<түсініктеме>','<мән>')

мұндағы,

айнымалы — мәні енгізу терезесіне енгізілетін жолдықтипті айнымалыатауы (InputBox функциясының мәні әр кезде жолдық (String,) munmi. Мән меншіктелетін айнымалы (х) программадах : string;түрінде сипатталуы тиіс);

тақырып -енгізу терезесінің тақырыбы ретінде жазылатын мәтін;

түсініктеме - енгізу терезесінің ішінде жазылатын түсініктеме мәтін:

мән енгізу терезесі көрінген кезде оның енгізу өрісінде көрінетін мәтін. Әдетте оны боссимволдық етіп енгізеді. Мысалы, х := 4."меншіктеу командасын InputBox функциясынпайдаланып, мынадай түрде беруге болады:

х :=InputВох( 'Аргумент мәні', 'х=', ")

Команданың орындалу барысында көрінетін терезе 2.6-суретте көрсегілген. Терезенің енгізу өрісіне 4,7мәнін енгізіп, ОК түймесін шерту керек

2.6-сурет. Енгізу терезесі

Стандартты типті түрлендіру функциялары: 2.1 -кесте

Функция

Орындайтын ic -әрекеті

StrToFloat(x)

FloatToStr(x) FloatToStrF(x,f,s,o)

StrToInt(x) IntToStr(x)

Кескіні жолдықтипті болатын х нақты санынқалпына келтіру

х нақты санын жолдықтипті ету

х пакты санынформатты жолдық типке түрлендіру. Мұндағы

f-формат (кескіндеу форматы). Олкөбінесе ffGeneralнеffFixedтүрінде жазылады;

s-барлық цифрлар саны(дәлдік);

о - ондық нүктеден соң жазылатынцифрлар саны(ондық дәлдік), мы­салы, FloattostrF(x, ffFixed, 7,3);

Кескіні жолдық типті х бүтін санын қкалпына келтіру;

х бүтін санын жолдықтипті ету (IntToStr- Integer to String, т.с.с).

Берілгендерді шығару.ShowMessage процедурасы

Delphi-де берілгендерді ShowMessage(мәліметті көрсету) процедурасының терезесіне шығаруға болады. Процедураның (оператордың) жазылу түрі:

ShowMessage (s);

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

ShowMessage(FloatToStr(s)); не ShowMessage(FIoatToStrF(s, ffgeneral, 7, 3));

Жүйе соңғы операторды оқып шығып, жеті цифрдан тұратын нақты санды символдық типте шығару терезесінде көрсетеді.

Қарапайым программа құру

Процедуралар оқиғалық және жалпы (оқиғаға байланыссыз) болып екі түрге бөлінеді. Программа олардың жиынтығынан тұруы мүмкін. Қарапайым жағдайда олбір процедурадан ғана тұрады.

Мысал. х=4,8 үшін у=2х+5/3 функциясының мәнін есептеу керек. х мәні InputBox терезесі арқылыенгізілсін, умәні ShowMessage терезесінде көрсетілсін.

  1. File-New Application командасын беріп, жаңа проект ашу. Forml терезесі көрінеді.

  2. Форманы екі рет шерту. Unitl.pas атаулы модуль кұрылады да, код терезесінде OnCreate оқиғасын өндеуіш процедурасыньң дайындамасы көрінеді (2.7-сурет).

2.7-сурет. Код терезесі

Дайындаманы қасиеттер терезесін пайдаланып орнату:

Дайындаманы орнатудың екінші тәсілі де бар:

- Form1-дің қасиеттер терезесінен Events (оқиғалар) қосымша бетін ашып, On Create оқиғасын таңдау;

- оның оң жағына FormCreate атауын енгізіп, КҚ клавишін басу.

Код терезесінің бірінші жолында көрінгені процедура тақырыбы. Мұндағы:

procedure - процедураның басталуын білдіретін кілттік сөз;

TForm1.FormCreate-форманы екі рет шерту оқиғысына жауап ретінде құрылатын процедураның құрама атауы. Ол нүкте арқылы ажыратылған екі бөлімнен құралған: біріншісі -класс атауы (Tform1) (Delphi-деәр қайсысы ұқсастолық бір іс-әрекетті орындай алатын программалар тобы класс деп, олардың біреуі класс данасы делінеді, екіншісі – процедура өз аты. Ол объект жәнеокиға атауларының қосындысынан тұрады (оқиға атауының алдында Onқосымшасы жазылмайды).

Компоненттер палитрасьна енгізілген әр компонент жекекласқа тиісті. Ол формаға кірістірілгенде сандық индексқосылып, классатауын алады. Барлық классатауларын Т әріпінен бастап жазу келісілген. Мысалы, TForm1 - TForm стандартты класының үлгісі бойынша құрылған класс атауы,мұндағы 1 —оның индексі.

2.7-суретте көрінген дайындаманың жоғарғы жағы ашылса, формаекі рет шертілгенде құрылған Unitl.pasмодулінің типсипаттамасы мынадай түрде жазылғаны көрінеді (мұнда ескеретін жайт: құрылатын оқиғаны өңдеуіш процедурасының тақырыбы автоматты түрде модульдің тип сипаттамасынажазылып қойылады. (Формада орнатылған компоненттер деосында сипатталып қойылады, мысалы,төменге енгізілген ескертуді қараңыз)):

type

TForm l=class (TForm)

Procedure FormCreate(Sender:TObject);

Private

{private declaration}

public

{public declaration}

end;

var Forml : TForml;

Типке енгізілген TForml=class(TForm) жолы стандартты TForm класының үлгісі бойынша құрылған (TForm класы тудырған) TForm1 ішкі класын аныктайды; FormCreate -про­цедура атауы; Sender (жіберуші) - оқиға көзі болатын объектіні (TObjеct) бойында сақтайтын шақыру параметрі (айнымалы). Олар жазылған қатар процедура тақырыбы делінеді.

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

If Sender = Button 1 Then ...

шартты операторын енгізсе болғаны.

Негізгі әдебиеттер:1[37-56], 12[25-35]

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

1. Берілгендерді енгіузу және шығару үшін Input Box функцмиясы мен Showmessege

процедурасын пайдалану тәсілдері.

2. Типті түрлендіру функциялары. Мысал келтіріңіз.

3. "Мен қаладан келемін" сөйлемін форманың Edit өрісіне енгізіп, Label1 өpiciнeшығару

программасын құрыңыз.

4. х=5,2 үшін у=3*х2+5х-2 функциясының мәнін есептеу программасынқұрып, іске қосыңыз. Программада х мәнін енгізу үшіи форманың Edit1 өрісі, умәнін шығару үшін Label1 өрісі пайдаланылсын.

4-Дәріс Проектіні сактау және ашу.

Проектіні дайындап болған соң оны сақтау үшін File-Save Project As неFile-Save All командасын беру керек. Егер про­екталғаш рет сақталынып жатса, ондамодульді сақтауды суыралатынSave Unitl As атаулы терезекөрінеді (2.8-сурет).

Проект сақталу үшін арнайы бумадайындалмаған болса,ол Projects (C:\Program Files\Borland\DeIphi5\Projects) бумасында сақталады.Бірақ пайдаланушы Сақтаутерезесінде жаңа бумақұрып, проектіні сонда сақтағаны жөн. Ол оныіздеп табудыжеңілдетеді. Жаңа бумақұру тәсілі:

  • сақтау сұралатын терезенің Жаңа бума кұру түймесін шерту. Бумабелгішесі терезеде

орналастырылып қойылады;

  • клавиатурадан бума атыненгізу;

  • буманы екі рет шертіп, ашу;

  • терезенің Файл аты өрісіне модуль атауыненгізіп, Сақтау түймесін шерту.

Модуль.pas кенейтілуі бойынша сақталып қойылады да, экранда проект атысұралатын терезекөрінеді;

Файл аты ерісіне проект атыненгізіп, Сактау түймссін шерту. Проект файлы .dprкеңейтілуі бойынша сақталады да, Негізгі модуль атауы осы атауға өзгертіледі. Ол программаатауы ретінде қабылданады.

2.8-сурет. Модульді сақтаутерезесі

мұндағы ескеретін жайт: модульмен проектіні бірдей атау бойынша сақтауға да болады, мысалы, Funcl.pas, Funcl.dpr. Бірақ модульді басқа проектілерде де пайдалану мүмкін. Сондықтан оларды түрлі атаулар бойынша сақтау керек.

Сақтаулы проектіні ашу үшін File-Open Project командасының берілуі тиіс. Көрінген терезеден қажетгі буманы ашып, онда көрінген проектатауын екі рет шертсе болғаны.

Программаны компиляциялау

Жаңа құрылған программаны(проектіні) сақтаған соң,оны іске қосуүшін компиляциялауқажет. Ол үшін берілетін команда:Project-Compile Project(Проект-Проектіні компиля­циялау).Жүйенін сәйкес күйге келтіріуіне байланысты, іске қосу командасы берілген кезде компиляциялау барысы Com­pilingсұхбаттық терезесіне көрініп тұрады .

Комппляциялау командасы берілген кезде Compilingтерезесі экранда көрінбеуі ықтимал. Оны экранға шығару тәсілі: Tools-Environment Options(Сервис-Күйге Келтіру) командасын беру.Environment Optionsтерезесі ашылады;

терезенің Preferences (Орнату) қосымша бетін ашып, Compiling and running (Компиляциялау және орындау) блогында орналасқан Sһow Compiler progress (компиляциялаубарысын көрсету) жалаушасын орнату (2.9-сурет).

2.9-сурет. Компиляциялау параметрлерін таңдау терезесі

Компилятор ерекшелеген жолда синтаксистік қате болмай,қате оның алдындағы жолда жіберілуі де мүмкін, мысалы, оған енгізілген командасоңына нүктелі үтір (;)таңбасы қойылмаған, т.б.

Қате түзетіліп болған соң Іске қосу командасынқайта беру керек неRun-Step Over (Іске қосу-Қадамнан бастап) ко­мандасынберуге болады.

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

ЕХЕ- файл

Проектіні сақтау кезінде DelhiPAS, DFM, DCUкеңейтулері қосылатын үш файл дайындап шығады. PAS - файлы — кодтерезесіндегі мәтін көшірмесі; DFM - файлында форматерезесінің ішіндегісі сипатталады; DCUфайлы -екі файлдың дамашиналық нұсқауға турлендіру нәтижесі. Егер программадасинтаксистік қате болмаса, компилятор олардыехе файлға түрлендіріп шығады (файлдың аты проектатауымен бірдей етіп жазылады да,оған .ехе кеңейтілуі қосылып қойылады). Ол Windows-қа кірістіріліп, проект файлысақталған бумада орналастырылады. Оны Windows жетекшісі (сілтеушісі) терезесінен әдеттегідей іске қоса берумүмкін.

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

1. Модуль мен проектіні арнайы бумақұрып, сақтау тәсілі, Файлатауы үшін пайдалануы

мүмкін символдар.

2. Сақтаулы проектіні ашу тәсілі.Программаныкомпиляциялау. Компилятордың

синтаксистік қатені көрсетуі.

3. Программаны іске қосқан кезде компиляциялау терезесі экранда көрінбесе, оны көрсету

тәсілі.

4. Delphi-де ехе-файл деп қандай файлды атайды? Windows – та оны іске қосу тәсілі.

5-Дәріс Компоненттер палитрасы

Dеlphi-де программадайындау үшін компоненттік тәсіл пайдаланылған: пайдалаиушы программаларынын кітапханасы программалау ортасымен бірге ұсынылатын, бір іс-әрекетті орындайтын (дайын программалар үзінділерінен тұратып) ком­поненттерден жинақталады, ал олар форматерезесіне енгізіледі. Компоненттік тәсіл программалау технологиясына нағыз төңкеріс жасады деуге болады, себебі, компоненттерді пайдалану программажұмысын күрделі түрде жеңілдетті.

Компоненттер кітапханасын визуальды компоненттер кітапханасы (Visual Component Library, VCL) деп атайды. Онда түрлі кластық көптеген стандартты компоненттержинақталып (Delphi 7-те олардың саны 200-денартық), олар турлі атаулы 12бетке орнатылып қойылған . Мысалы,

Standard бетіне енгізілген кейбір компоненттер 2.2-кестеде және 2.10-суретте көрсетілген.

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

System (Жүйе) бетіне OLE (Байланыстыру және орнату) технологиясы бойынша берілгендерді түрлі программалар арасында алмастыратын және т.б. іс-әрекеттерді орындайтын компоненттеренгізілген. Мысалы,

Timer (Таймер) - нақты уақыт аралықтарын есептеу;

Paint Box (Суркт қорабы) -графикалық кескіндер енгізілетін төртбұрышты облыс құру;

OLEContainer (OLE Контейнер) - байланыстырылатын және орнатылатын объектілерді қабылдау контейнері;

MediaPlayer - Мультимедиалық құрылғылармен жұмысты басқару.

Win32 бетіне енгізілген компоненттердің бірі - Animate (жандандыру, қозғалыс әсерін ұйымдастыру) -қозғалыс әсерін ұйымдастырады.

Компонент формаға орнатылған кезде соңына индексқосылып, класс атауыналады.

2.2 – кесте

Аталуы

Іс-әрекеті

MainMenu PopupMenu

Edit

Label

Button

ScroolBar

Программа мезірін құру

Оң түймені шерткен кезде бетке шығатын(контекстік) мәзір шығару.

Жолдық мәнді енгізу, редакциялау (мәтіндік редактор).

Бір жолдық мәтіңді (жазбаны) енгізу.

Командалық түйме. Оның OnClick оқиғасын өңдеуіш процедурасы бір іс-әрекеттіорындайды.

Басқару белдеушесі (Windows терезесіндегі сияқты).

Samples (Модель) бетіне енгізілген компоненттер: ColorGrid (Түстер торы) - түстер кестесі. Ол 16түстік палитрадан негізгі және фонтүсін тандау:

2.10 сурет. Компоненттер палитрасы. Standard бетіне енгізілген компоненттер

Calendar (Календарь) - ағымдық күн белгіленген ай календарын көрсету(жылдық календарды Win32 панелінің MonthCalendar компонентін формада орнату арқылы шығаруға болады), т.б.

Пайдаланушы жаңа компонентдайындап, оны компо­ненттерпанеліне қосып коюы дамүмкін.

OLEContainer компонентін пайдаланумысалы

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

Мысал. Paint графикалық редакторы терезесін Delphi ортасына шақырып, сурет салу және салынған суретті формада көрсету керек.

  1. Жаңа форма ашып, онда OLEContainer 1 компонентін орнату.

  2. Орнатылған компонентті екі рет шерту. Объектіні кірістіру терезесі көрінеді (2.11-сурет). Оған объект типтерінің тізімі енгізілген: Документ Microsoft Word, Лист Microsoft Excel, точечный рисунок Paintbrush, т.б.).Олардың кез келгенін тандап, Delphi ортасында іске қоса беруте болады.

  3. Тізімнен Точечный рисунок Paintbrush қатарын таңдап, терезенің OKтүймесін шерту(КҚ клавишін басуға да бо­лады). Delphi-гePaint графикалық редакторықосылып қойылады және формақыйта ашылады.

  4. OLEContainer компонентін екі рет шерту. Такырыбына Точечный рисунок OleContainer1 - Paint жазылған Paint терезесі көрінеді (2.12-сурет). Paint мүмкіндіктерін пайдланып, төртбұрыш ішіне қолдан қалаған турде сурст салу және оны редакциялау әдеттегідей. Файл-Көшірмесін ...деп сақтау (Файл-Сохранить копию как ...)командасы арқылы салынған суретті сақтау.

2.11-сурет.Объектіні кірістіру терезесі

2.12-сурет. OleContainer1 - Paintтерезесі

5.Терезені жабу. Компонентішінде сурет салынған формакөрінеді (2.13-сурет).

2.13-сурет

Таймер Delphi-дің негізгі ерекшеліктерінің бірі - программа фор­мада орнатылған компоненттер (пайдаланушы интерфейсі) оқиғаларын өңдеуіш процедуралар ретінде құрылады. Әр ком-поненттің өзіне тиісті қасиеттері, оқиғалары, әдістері бар. Онықұрылатын программаның алдын аладайындалған үзіндісі деп қарауға болады. Яғни, компоненттер программакөлемін азайтып, құруды жеңілдетеді.

Мысал. Компоненттерпанелінің Systemбетінле орналасқан Timer компонентін пайдаланып, формадажүріп тұрғанэлектрондық сағатты көрсету керек.

  1. Жаңа проект ашып, формада Timer1, Label1 компоненттерін орнату (Label1-ді ішіне жүріп тұрған сағат көрсетуді жоспарлау);

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

Компонент

Қасиет

Мән

Timer

Label 1

Enabled (қол жетерлік)

Interval

Caption

Width (ені)

Heigth (биіктігі)

Left (сол жақтан)

Top (жоғарылан)

True 1000 <бос ету>120 60 100 60

мұндағы Label1 қасиетіне меншіктелген мәндер формада орнатылған электрондық сағатэлементтерін қажетті түрде үлкейтіп, сағатты форма ортасында орналастыруүшін ғана енгізілген. Timer1 компоненті - Windows-тың жүйелік таймері (WM_TIMER).Ол кажетті мәліметті миллисекунт өлшемімен периодты түрде бөліп беріп отырады. WM_TIMERгенераторын қосуүшін оның Enabled (қол жетерлік, мүмкіндік) қасиетіне true мәні, нақты уақыттыбөліп беруді орындайтын Interval (аралық) қасиеті мәніне 1 секменшіктелген (1 сек = 1000миллисек.).

Жалпы, ТTimer компоненті өндейтін оқиға біреу ғана - OnTimer (уакыт бойынша). Код терезесінде сәйкес процедура дайындамасын шығару үшін Timer 1 компонентін екі рет шерту не компонентгің қасиеттер терезесінен OnTimer оқиғасын таңдап, оң бөлігін екі рет шерту керек.

3. Оқиғаны өңдеуіш құру:

Procedure TForml. TimerlTimer (Sender : TObject) ;

var DateTime : TDateTime;

begin

DateTime := Time;

label 1.Caption := TimeToStr(DateTime);

end;

мұндағы Time ағымдық уақытты қайтарып беретін стандартты функция; TimeToStr - уақытты символдық типке турлендіру функцияеы.

2.14-сурет. Формада орнатылған жүріп тұрған сағат

4. Іске косукомандасын беру(Р9). Формадажүріп түрған сағаткөрінеді (2.14-сурет).

Dеlphi-де компоненттердің мүмкіндіктері орасан зор. Жоғарыда TTimer компонентінің атқаратын іс-әрекеті мен OLEContainer компонентінін текбір әдісін шақыру арқылы орындалатын күрделі жұмыс көрсетілген.

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

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

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

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

қасиеттер —обьект сипаттамалары (параметрлері);

әдістер —кластың өрістері мен қасиеттерін өңдейтін процедуралар мен функциялар;

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

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

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

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

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

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

Класқа иерархиялық (бағынышты, жоғарыдан төмен)кластардын енуі де мүмкін. Мысалы, геометриялық фигуралар класы жазық фигуралар және кеңістік фигуралары болатын екі ішкі кластық фигураларға бөлінеді. Ал жазық фигуралар класы төбелері бар(үшбүрыш, көпбұрыш) жәнс төбелерсіз (шеңбер, эллипс)болып екі ішкі класқа бөлінеді. Объектілі программалауда барлык кластар иерархиядлық түрде негізгі TObject класынан тарайды (Tobject → Tpersistent → Tcompofient → ...). Әдетте негізгі класты аталық, бағыныңқы кластарды туынды несәбилік кластар деп атайды (TObject -барлық кластардын арғы атасы, TComponent — барлық иерархиялықкомпоненттердің жоғарғысы (компонент депТcom­ponent класының мұрагері болатын класс данасын атайды)). Әр ұрпақ өзінің аталықкласының мүмкіндіктерін (өрістерінің, қасиеттерінің, әдістерінің сипаттамаларын) қабылдайды. Мы­салы,TObject класының Create (бастапқы мән меншіктеу (инициалдау)) әдісі барлық туынды кластарға тиісті (TObject класында конструкторCreate депаталады). Әр ұрпақ өзіне қосымша жаңа мүмкіндіктер (сипаттамалар) қосып, келесі ұрпақтарға беруі мүмкін.

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

Туынды кластың сипатталу түрі:

type

<туынды класс атауы>=class(<негізгі класс атауы>); < класс"мүшелерінін тізімі> end;

var

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

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

type

TForm1 - class (ТForm);

Button1:TButton;

Label1: Label;

Procedure Button1Click(Sender:TObject);

end;

var From1:TForm1;

TForm1 = class (TForm) жазуы ТForm класының үлгісімен құрылатын жаңа (туынды) TForm1 класын анықтайды. Form1 :TForml жолындағы Form1 айнымалысы- класс данасы.

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

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

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

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

procedure TForml.EditlClick(Sender : TObjеct);

begin

Edil1.Tеxt:= 'Сіз редакциялау өрісін екі peтшерттіңіз:

end;

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

Application.CreateForm (Tform1.Form 1);

Application.Run;

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

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

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

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

Инкапсуляция (ішінде, біртүтас). Класс өрістер, касиеттер және өдістердің бірлігінен тұрады. Оларды біртұтас түрінде қарастыру инкапсуляция деп аталады. Әр классаяқталған толық бір іс-әрекетті бойында сақтайды. Мысалы, form1класы өз бойында Windows -терезені дайындау үшін бардық қажеттілерді ішінде сақтайды. Кластың мұндай принципі өзінде ипкапсульдайды делінеді.

Класта инкапсульданған процедуралар мен функциялар -әдістер.

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

Негізгі әдебиеттер:5[50-56], 12[45-65]

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

1. Объектілі- бағдарлы программалау дегеніміз не? Қандай құрылымдық тип класс (class)

арқылы сипатталады?

2. Қасиеттер қандай айнымалылар? Мысал келтіріңіз.

3. Модульдің var бөлімінде Form1 программалық элементтерінің (объектінің) сипатталу

түрі. Класс данасы дегеніміз не?

4. Delphi-де қосымшаны (программаны) дайындау тәсілі.

5. Компонент, визуальды компрнент кітапханасы (VCL) дегеніміз не?

6-Дәріс Берілгендер типтері Стандартты функциялар.

Автоматты құрылғының не адамның өңдеуіне бейімделіп дайындалған сандық, символдық, мәтіндік т.б. информацияны (ақпаратты) берілгендер деп атайды. Программаны орындау барысында мәні программа мәтінінде көрсетілген қалпынан өзгермейтін шаманы тұрақты деп, мәні өзгеріп отыратын шаманы айнымалы деп, айнымалыға берілген атауды иденти­фикатор деп театайтыны белгілі.

Delphi Object Pascal программалау тілін басшылыққа алып құрылған. Онда пайдаланылатын көптеген операторлар (нұсқаулар), кілттік сөздер, айнымалыларды сипаттау және про­граммақұрылымы Турбо Паскаль программалаутіліне негізделген.

Delphi-де жиі пайдаланылатын берілгендер типтері:

Integer, Real, Char, String, Boolean

(Integer – бүтін, real - нақты, char - символ, string – жол, boo­lean - логикалық).

Бүтін және нақты типті айнымалылардың кейбірі, оларлы пайдалану мүмкін аралықтар және жадта бөлінетін байттық орындар 2.3, 2.4-кестелерде көреетілген.

1. Бүтін тип: 2.3-кесте

Тип

Аралық

Байт

Integer Byte Word Longint

-32768..32767

0..255

0..65535

-2147483648.. 2147483647

16

2

16

32

2. Нақты тип: 2.4-кесте

Тип

Аралық

Цифр саны

Байт

Real

Single

Double

2,9х10-39..1,7х1038

1,5х10-45..3,4х1038

5,0х10-324..1,7х10308

11-12

7-8

15-16

6

4 8

  1. Символдық тип: char (Windows-та қолданылатын ANSI кодтарына енгізілген символдар).

  2. Жолдық тип: string (жолдың ұзындығы 2 Гбайтқа дейін болуы мүмкін; жазылу форматы;string(m) неstring.

5. Логикалық (бульдік) тип: boolean. Логикалық типті айнымалының мәндері екеу ғана: True(ақиқат), False (жалған).

Айнымалы атауы үшін теклатын алфавитінін әріптерін және цифрлар мен кейбір басқасимволдарды алуға болады, ол үшін кілттік сөздерді алуға және босорын(‘ ’) символыненгізуге рұхсат етілмеген. Атау тек әріптен басталуы тиіс.

Жүйе атауды оқып шыққан соң мәшине жадында ол үшін арнайы ұяшықтар блогын бөледі де, мәнді сонда сақтайды (яғни, айнымалы - берілгендер сақталатын жад облысы). Ай­нымалыатауы программанын var бөлімінде сипатталуы міндетгі (variable - айнымалы,кілттік сөз).

Стандартты функциялар. Өрнек

Delphi-де жиі пайдаланылатын стандартты функциялар менпроцедуралар көп. Математикалық функциялардың кейбірі 2.5-кестеде көрсетілген.

2.5-кесте.

N

Функция, әрекет

Delphi-де жазылуы

Мағынасы, мәні

1

sinx

cosx

lnx

ex

x2

x1/2

abs x

3.78→4

3.78→3

3.78→3

3.78→0.78

sin(x)

cos(x)

ln(x)

exp(x)

sqr(x)

sgrt(x)

abs(x)

round(x)

trunc(x)

int(x)

frac(x)

х- радиан

х- радиан

x>0

е-нің х дәрежесі (е=2,718...)

x>0

х-тің абсолют шамасы

санды бүтінге дейін дәлдіктеу

санның бүтін бөлігі

санның бүтін бөлігі

санның бөлшек бөлігі

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. Берілгендер дегеніміз не ? Мысалдар келтіріңіз.

  2. Delphi-де жиі пайдаланылатын берілгендер типтері.

  3. Бүтін типтер түрлері. Integer, byte, word типті шамаларды пайдалануға болатын аралықтар және олардың жадта алатын орындары.

7-Дәріс Программаның жалпы түрде құрылымы.

Программаға ретімен мынадай бөлімдердің енгізілуі мүмкін {программа құрылымы):

программа тақырыбы (procedure неfunction);

ең бөлімі (label);

тұрақтылар бөлімі (const);

айнымалылар бөлімі (var);

қосалқы программалар бөлімі (процедуралар менфункция­лар);

операторлар бөлімі.

Delphi-де тиянақты бір іс-әрекетті орындайтын программалық элемент жеке процедураарқылы жазылады.

Түсініп оқуға жеңіл болуы үшін күрделі программаның қажетті жерлеріне түсініктеме мәтіндер енгізіліп койылады. Түсініктеме оператор алдынаенгізілсе, фигуралық жакшалар ({ })ішінде орналастырылады. Егер ол операторсоңына енгізілсе, алдына \\ (екі теріс көлденең сызық) символдары жазылады. Соңғысын текбір жолдық, түсініктемеде пайдалану мүмкін. Мысалы,

1.{Трапеция ауданы }

s := (a+b)*h/2:

2.s := (a+b)*h/2;\\ трапецииауданы

Компьютер түсініктемені оқымай тастап кетеді, ол текпайдаланушыға программаның жазылуын түсінуді жеңілдету үшін қажет.

Қарапайым программа. Түс

Мысалы: Форманың Label өрістеріне мынадай бір шумақ өлең шығару керек:

Өлең сөздің патшасы, сөз сарасы,

Қиыннан қиыстырар ер данасы.

Тілгн жеңіл, жүрекке жылы тиіп.

Teп - тегіс жұмыр келсін айналасы.

(Абай)

  1. File-New Application(Файл-Жаңа қолданба) командасын беріп, жаңа форма aшy:

  2. Формаға бір баған бойында Labell, ..., LabeWжәне кез келген босжерінде Buttonlкомпонеттерін орнату;

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

Компонент

Қасиет

Мән

Buttonl Labell

...

Label4

Caption Caption

...

Caption

OK

<бос ету>

...

<бос ету>

4.Button1 түймесін екі рет шертіп, ашылған кодтерезесінде түйменін, OnClick оқиғасын өндейтін процедура құру:

ProcedureTForml.ButtonlClick(Sender : TObject);

{Ұлы Абай өлеңдерінен} .

begin

Forml.Color:=clWhite;

Labell.Caption:= 'Өлең сөздің патшасы, сөз сарасы,'

Label2.Caption:= 'Қиыннан қиыстырар ер данасы.'

Label3.Caption:=‘ Тілге жеңіл, жүрекке жылы тиіп,'

Label4.Caption:= 'Теп-тегіс жұмыр келсін айналасы.'

end:

5. Проектіні сактап. іске косу.

Процедураға форманы ақ түске бояуға арналған Forml.Color:=clWhite; командасы енгізілді (color - түс; white-ақ). Жалпы, форманы не формаға енгізілген компоненттер мен кескіндерді түрлі түстерде көрсетуге болады. Түстер объектілердің Color қасиеттерінің мәндері. Олардың көп пайдаланылатын түрлері:

2.6 кесте.

Түстер.

Қасиеттер

Қасиет мәні (түс)

Color

clBlack clWhite clRed clGreen с1Lime clBlue clYellow clPurple clGray clMaroon clBtnFace

Қара Ақ Қызыл Көк Жасыл Көгілдір Сары Қызғылт Күңгірт сұр күңгірт қызыл Сұрғылт

Delphi алғашкы рет іске қосылғанда форма сұрғылт түске боялған турде көрсетіледі.

Жоғарыдағы сияқгы, форманың не формаға енгізілген компоненттер мен кескіндердің түстерін программа арқылы орнату дамүмкін. Мысалы,

Forml.Color:=clRed; - форманы қызыл түсті етіп көрсету;

Labell.Color:=clRed; - Label 1 өрісін қызылға бояу;

Labell.Font.Color:=cIRed; - Label 1 ерісіне енгізілетін мәтінді қызыл түске бояп көрсету, т.б.

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

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. Программа құрылымы.

  1. Түсініктеме дегеніміз не? Оның программада жазылу түрлеріне мысалкелтіріңіз.

  2. х=5,2 үшін у=3х + функциясының мәнін есептеу программасын құрып, іске қосыңыз. Нәтижелік мән 5 : 3 дәлдік бойынша шығару терезесінде көрсетілсін.

8-Дәріс ТМеmо компоненті. Мәтінмен жұмыс.

Memo компоненті — String List editor атаулы арнайы терезесі бар мәтіндік редактор. Терезеге көп жолдық мәтінді енгізуге және оны редакциялауға болады. Мәтін TStrings класының Lines қасиетінде сақталады. Дайындалған мәтінді формабетіне шығару қиын емес.

Егер, өткен тақырыпта берілген өлең сияқты, мәтін көп жолдық болса, оны Memoкомпонентінің терезесіне енгізген дұрыс. Жұмыс тәсілі:

  1. Жаңа проект aшy;

  2. Компоненттер панелінің Standard қосымша бетінен фор­маға Memo1, Button1 компоненттерін орнату;

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

Компонент

Қасиет

Мән

Мағынасы

ButtonlMemol

Caption

Font

Name

Align

ScrollBars

(белдеуше)

WordWrap (сөзді тасымалдау)

Lines

OKTimesKaz, 11

MmOutput

AlClient

SsBoth

(eKey)

False

[TStrings]

Атау

Мәтінде қолданылатын шрифт

Компонентке берілген атау

Барынша кеңейту

Memo терезесіне

белдеушелердіорнату

Тасымалдауды болдырмау

Мәтін жолдары

  1. Memol компонентінің Lines қасиетін екі рет шерту. Редак­тор іске қосылып, String list Editor терезесі көрінеді.

  2. Терезеге жоғарыда берілген бір ауыз өленді әдеттегідей енгізу (әр жол теріліп болған соң КҚ клавишін басу керек);

6.Терезенің ОК түймесін шерту. Өлең форма бетше енгізіліп қойылады (2.15-сурет);

7.Проектіні сақтау.

2.15-сурет. Memo1 терезінен көшірілген өлең

Тармақталу командасы. Құрама оператор

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

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

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

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

if P then begin

S1

end

else begin

S2

end;

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

If (егер) командасының орындалуы стандартты Паскальдағы сияқты: егер шарт орындалса, ондаthen кілттік сөзінен соң жазылған блок, шарторындалмаса, else кілттік сөзінен соң жазылған блок орындалады.

1-мысал. ax2+bx+c=0 квадраттендеуін шешу керек.

  1. Жаңа проект ашу;

  2. Баған бойынша формаға Label 1, ..., Labet4 компоненттерін орнату;

  3. Олардың оң жағына баған бойынша Editl, ...,Edit3 компоненттерін және форманың төменгі қатарына Button1 компонентін орнату; Label 4 өрісіне квадрат теңдеудің түбірлерін шығаруды, Edit1, Edit2, Edh3 ерістеріне a, b,с мәндерін енгізуді жоспарлау;

  4. Объектілер қасиеттеріне мәндер меншіктеу;

Компонент

Қасиет

Мән

Forml

Caption

KvTendeu

Labell

Caption

a=

Label2

Caption

b=

Label3

Caption

c=

Label4 Editl

Edit2

Edit3

Caption

Text

Text

Text

Бос ету (жазылған labellмәнін өшіру)

Бос ету

Бос ету

Бос ету


5. Button1 түймесін екірет шертіп, оның опСІіск оқиғасын өңдеуіш процедурақұру:

Procedure Tforml.ButtonlClick(Sender:TObject);

var a, b, с, d, xl, x2 : real;

begin

//Дискриминант

a:= StrToFloat(Editl.Text);

b:= StrToFloat(Edit2.Text);

с:= StrToFloat(Edit3.Text);

d:= sqr(b)-4*a*c;

if d<0 then begin

{ Label4 өрісін қызыл түске бояу}

Label4.Color:=clRed;

Label4.Caption: = 'дискриминант<0'+#13+

+Тендеудін нақты түбірлері жоқ';

end

else begin

xl := (-b+sqrt(d))/(2*a);

x2 := (-b-sqrt(d))/(2*a);

Label4.Color := clRеd;

Label4.Caption:=<xl='+FloatToStrF(xl,ffFixed,7,4)+

#13+ *x2=' +FloatToStrF(x2,ffFixed,7,4);

end;

end;

  1. Проектіні сақтап, іске қосу командасын беру;

  2. Мысалы, Edit1 ерісіне 1, Edit2 өрісіне 2,Edit3 өрісіне -3енгізіп, Button 1 түймесін шерту. Label4 өрісінде квадраттендеудің түбірлері көрінеді:

xl=3

х2=1

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

    1. Бір ауыз өленді форманың Label өрістеріне шығарыңыз.

  1. Бір ауыз өленді Memo терезесіне жазып, оны форма бетіне шығарыңыз.

  2. Қасиет және программа арқылы форманы, кескіндерді бояу тәсілдері. Түрлі түстер атаулары.

  3. Тармақталу командасы дегеніміз не? Команданың түрлі түрде жазылу түрлеріне мысалдар келтіріңіз.

9-Дәріс. TRadioButton компоненті. Калькулятор

программасы.

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

Формада екі санды қосу және азайту амалдарын орындайтын калькулятормоделін дайындау керек болсын.

Программаны түрлі нұскалы етіп дайындауға болады, оның бір түрін дайындаутәсілі (2-түрі 2.10-такырыпта берілген):

  1. Жаңа формаaшy;

  2. Формата Label1, .... Label5, Editl, ..., Edit3, RadioButton1, RadioButton1, Button1, Button2 компоненттерін 2.16-суреттегідей етіп орнату;

Компоненттерге кэсиеттердің мәндерін меншіктеу:

Компонент

Кдсиет

Мэн

Forml

Caption

Калькулятор

Labell

Caption

1-сан

Label2

Caption

2-сан

LabeB

Caption

Нәтиже

Label4

Caption

+

Label5

Caption

-

Editl

Text

Бос ету

Edit2

Text

Бос ету

Edit3

Text

Бос ету

RadioButtonl

Caption

Бос ету

RadioButton2

Caption

Бос ету

Button 1

Caption

ОК

Button2

Caption

Close


2.16-сурет. Форма-Калькулятор

ОК түймесін екі ретшертіп, түйменің опСlick оқиғасын өндеуіш процедурасын құру:

Procedure TForm 1 .Button 1 Click(Sender:TObject);

var x, у, z : real;

begin

x := StrToFloat(Editl.Text);

у := StrToFIoat(Edit2.Text);

if Form1.RadioButtonl.Checked true then

begin

z:=x+y;

Edit3.Text:= FloatToStr(z)

end;

if Form1RadioButton2.Checked = true then

begin

z := x - y;

Edit3.Text := FloatToStr(z)

end;

end;

5. Close түймесін екі рет шертіп, процедура соңына про­грамма жұмысын аяқтау процедурасын қосу:

Procedure TForml.Button2Click(Sender:TObject);

begin

Close;

end;

  1. Проектіні сақтау;

  2. Проектіні іске қосу. 2.16-суретте бейнеленген формакөрінеді.

  3. Editl, Edit2 өрістеріне екі саненгізіп, сәйкес RadioButtonауыстырып қосқышын шерту. Ол орнатылып қойылады (®);

9.ОК түймесін шерту. Edit3 өрісіне нәтиже жазылады.

Мысалы, ретімен Editl, Edit2өрістеріне 4.8, 5сандарын енгізіп, +таңбасы қатарындағы RadioButton ауыстырыпқосқышы, одан әрі ОК түймелері шертілсе, көрінетін нә­тиже: 9.8.

Тапсырма. Екі санмен қосу,азайту, көбейту орындайтын калькулятор программасынкұрыңыз.

TScroIIBar компоненті

Компоненттер палитрасының Standard бетіне енгізілген TScroIIBar компоненті-сандық шама мәнін басқаруға арналған Windows-тың басқарушы элементі. Оның формада орналасқан кездегі түрі -терезе белдеушесіне ұқсас. Белдеушенің сырғытпа түймесін жылжытуарқылы қажетті мәнді шамамен пайдалануға болады. Компоненттің негізгі касиеттері:

Kind (әр түрі) - sbVertical, sbHorizontal (белдеушенің сырғытпа түймесінің тік некөлденең жылжуы үшін тандалатын мәндер).

Position-сандык шаманың ағымдық мәні (0<= мән<=100).

Max — сандық шаманың өзгеру аралығының ең үлкені (100).

Міп —сандық шаманың өзгеру аралығының ең кішісі (0).

Max жоне Міп касиеттерінің мәндері автоматты түрде ор­натылыпқойылады, Формада сырғытпа түйме жылжыған кезде position мәні тіп және max арасында автоматтытүрде өзгереді. Position мәнінің өзгеруі кезінде OnChange оқиғасы өнді-ріледі.

Мысал, Тікұшақтың жылдамдығы берілетін газмөлшеріне байланысты. Оның ағымдық жылдамдығын форматерезесінде көрсетіңіз. Егер жылдамдық мөлшері 350 -ге жетсе, 'Газды төмендет, жылдамдық артық! ' ескертуі ShowMessage терезесіне шығарылсын.

  1. Ортаны ашып, формада ScrollBarl және Label 1компоненттерін орнату.

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

Компонент 1 Клиент

Қасиеті

Мән

Form 1ScroIlBarl

Name Width

Kind Align

Min

Тікушак

430

sbVertical

alRight (он, жакта) 0

Label1

Max Position

Name Font Caption Left

100

100

Labell

Times Kaz, 11 <6oc ету>

50


3. Ретімен ScrollBar1l компоненті мен форманы екі реттен шертіп, ScrollBar1 Change,

FormCreate процедураларын құру:

Procedure Tforml. ScrollBarlChange( Sender : TObject);

var jld, gaz : integer;

begin

{Белдеуше төбесінен қашықтық}

gaz := 100 – ScrollBar1. Position;

{Газ мәні бойынша ағымдық жылдамдық}

jld := gaz * 4;

{Жылдамдықты Label1 өрісінде көрсету}

Label1.Caption := 'Ағымдық жылдамдық ' +

IntToStr(jld);

If jld >= 350 then

ShowMessage(Газды төмендет,' +#13

+ 'жылдамдық артық');

end;

Procedure TForm1. FormCreate(Sender: TObject);

begin

ScrollBar1. Position := 100;

end;

4. Проектіні сақтау (мысалы, Jildamd11), іске қосу.

Программаға ұшаққа газ беретін тұтқамен жұмыс істеу тәсілі енгізілген (тұтқа баламасы — тік белдеуше).

Программа іске қосылған соң ағымдық жылдамдық мәтіні жазылған форма көрінеді. Көрсеткіші не белдеушенің жоғарғы түймесін басу арқылы тік белдеушенің сырғьтпа түймесін жоғары жылжыту керек. Формадакөрінген ағымдық жылдамдық 350-ден кем болмаған кезде фор­мада ескерту енгізілген ShowMessage терезесі көрінеді (2.17-сурет).

2.17-сурет. Жылдамдық, ескертпе көрсетілген форма

Таңдау командасы. Case операторы

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

Case ернекof

1-тізім: begin

S1

end;

2-тізім: begin

S2

end

n-тізім: begin

Sn

end;

end;

мұңдағы

өрнек — мәні бойынша сәйкес тізім нұсқаулары (SI, S2, .... Sn) орындалатын өрнек. Көбінесе, ол мәні case операторынын алдында енгізілетін айнымалы түрінде алынады;

k - тізім сұрыптаушы (тандаушы) делінеді Ол үгір арқылы ажыратылып жазылатын тұрақтылар тізімі (к = 1, 2, ..., п). Тізім орнына бір тұрақтыны не тұрақтылар аралығын алуға болады. Аралық екі нүкте арқылы ажыратылып жазылады. Мысалы, 3, 4, 5, 6 тізімін 3-6 аралығымен ауыстыру мүмкін; егер айнымалы (х) мәні (-∞ ; 2) аралығында алынса, тандаушыны х<2 деп жазуға болады. Сәйкес тізім нұсқаулары орындалып болған соң басқару case операторынан соңғы нұсқауға беріледі. Егер өрнек не өрнек орнына жазылған ай­нымалы мәні бірде-бір тандаушыға сәйкес келмесе, case операторы орындалмай тастап кетіледі.

TBitBtn, TPanel, TComboBox компоненттері

Сәйкес компоненттер компоненттер панелінің Standard, Aditional беттеріне орналастырылған.

TBitBtnTButton сияқты түйме компоненті. Айырмашылығы -ол формада орнатылған соң, үстіне таңдалған сурет енгізіп қоюға болады. Мысалы, Kind (түрлі

бейнелі) қасиетінің bkОК мәні тандалса, оның көріну түрі оң жақтакескінделген.

TPanel (панель) компоненті - формада орнатылған соң бетіне орнатылған бірнеше компонентті байланысты бір топ ретінде топтастырушы (контейнер кызметін аткарушы) тік төртбұрышты объект ретінде пайдаланылады;

TComboBox (Құрастырылған өріс) - формада тізім енгізілетін өріс түрінде көрінетін компонент. Программаның орындалу барысында тізімнен қажеттісі таңдалса, ол орнатылып қойылады.

Цикл

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

  1. While P do b

Begin

S

end;

  1. Repeat

S until (not P);

3) For k:= ko to kn do

begin S

end;

мұндағы P — шарт; do — орындау (кілттік сөз);

S - цикл денесі; until —дейін (кілттік сөз);

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

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

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. 2 - 7х + 4 = 0 квадрат тендеуін шешу программасын мәндер формаға шығатындай етіп құрыңыз.

  2. Осы программа бойынша 3х2 -5х + 8 = 0 теңдеуін шешіңіз. Формада қандай мәлімет көрінеді, онын себебі?

  3. Формада калькулятор моделін, сәйкес компоненттердің қасиеттерін орнату. Калькуляторға арналған программа мазмұны.

10-Дәріс Goto, Label операторлары. Бос оператор.

Кейбір жағдайларда циклді Goto М операторын пайдала­ныпқұру не программада осы оператордыпайдаланып, енсалынған жолға сөзсіз өту жағдайлары кездеседі.

Goto М - М арқылы таңбаланған (ен салынған) жолға сөзсіз өту операторы (goto - өту, М - ен. Ен сан не символ болуы да мүмкін). Ен программаның Label бөлігінде сипатталып қойылуы тиіс: Label M;

Мысал. Енгізілген бүтін п санының жай сан не құрама сан екенін анықтау керек. (n>=3).

  1. Жаңа проект ашу;

  2. Формаға Edit1, Label1, Button1компоненттерін орнату;

  3. Edit1-дің Text, LabeI-дің Caption қасиеттерінің мәндерін тазалау (бос ету), Button 7-дің Caption қасиетіне О К мәнін меншіктеу;

  4. ОК түпмесін екі рет шертіп, көрінген кодтерезесінде процедура құру:

Procedure Tform1.Button1Click(Sender: TObject);

Label 10;

var n, b, q : integer;

begin

n:= StrToInt(Edit1.Text);

if n<=3 then

begin

ShowMessage(‘n>=3 оң сан болуы тиіс’);

Editl.Text:=’’;

Goto 10;

end;

// алдымен екіге бөлу

{оң сан енгізілген}

b:=2;

repeat

q := n mod b;

if q<>0 // n екіге бүтін бөлінген жоқ

then b := b+1; // бөлгішті 1-ге өсіру

untilq=0;

Label1.Caption := Edit1.Text; Label1.Font.Name := 'Times Kaz';

if b=n then

Label1.Caption := Label1.Caption+' - жай сан'

else

Label1.Caption := Label1.Caption+' – құрама сан'; 10: ;

end;

  1. Проектіні сақтап, іске қосу командасын беру. Формакөрінеді.

  2. Оның Edit1 өрісіне саненгізіп, ОК түймесіншерту.

Өріске 89 саныенгізілген кезде форманың көрінісі 2.18-суретте бейнеленген.

2.18 – сурет. Санды жәй санға тексеру нәтижесі.

Random функциясы. Const операторы

Random(m) — 0..m-1 аралығында кездейсоқ санды тудыратын функция.

Мысал. Randomфункциясын пайдаланып, тиын ақшаны n рет лақтырғанда цифржағымен түсудің салыстырмалыжиілігін (w)жуық шамамен анықтау программасын құру керек (n рет сынақ жүргізілген кезде күтілген оқиға m ретпайда болса, w=m/n).

Тиын ақшаның цифржағымен түсу нетүспеу оқиғаларын 1, 0арқылы белгілеп, программаны мынадай түрде қуруға болады.

  1. Жаңа проекташу;

  2. Формада Label1, Label2, Label3, Button1 компоненттерін орнату;

  3. Label өрістерінің Caption қасиеттерінің мәндерін бос ету;Button1 түймесінің Caption қасиетіне ОК мәнін меншіктеу.

  4. ОК түймесін екі рет шертіп, программалық код құру:

procedure TForm2.Button1Click(Sender: TObject);

var n, m, k, r : integer; w : real; nl, ml : string;

begin

n :=StrToInt(InputBox('','n=','')); //сынақ саны

m := 0;

for k := 1 to n do

begin

r := round(random(2)); // r=0 не 1

if r=1 then m:=m+1; end;

w := m/n; ml :=IntToStr(m); nl := IntToStr(n);

Label1.Font.Name:='TimesKaz';

Label2.Font.Name:='Times Kaz';

Label3.Font.Name:='Times Kaz';

Label1.Caption := nl+' сынақта цифрдың көрінуі '

+ml+'peт';

Label2.Caption := 'Жиіліктік' + FloatToStr(w);

Label3.Caption:='Басқа сынақ санын енгізу үшін'+

#13+'OK клавишін басыңыз';

end;

  1. Проекті сақтап, іске косу. Формакөрінеді;

  2. Оның ОК түймесін шерту. Енгізу терезесі көрінеді; Терезеге сынақ санын (мысалы, 150)енгізіп, ОК түймесін шерту. Сынақ саны менжиілік енгізілген формакөрінеді

(2.19-сурет).

Программаға енгізілген r -n сынактың әрқайсысында 0 не 1кездейсоқ, санын қабылдайтын айнымалы;

Round —нақты санды бүтінге дейін дәлдіктеу функциясы;

Түрлі сынақтар саныүшін программаның орындалу нәтижесі кестеде көрсетілген. Цифрдың көріну жиіліктігі (w)сынақ саныкөбейген сайын осыоқиғаның пайда болу

2.19-сурет. 150 сынақта жиілік нәтижелері.

ықтималдығына (0.5)бірте-бірте жақындай түсетіні математикалық статистикакурсынан белгілі. Ол кестеден де көрініп тұр.

Сынақгар

саны — n

Цифрлық беттің

көріну саны -m

Салыстырмалы

жиілік -W

130

57

0,57

200

93

0,46

300

150

0,51

400

207

0.51

1000

507

0.507


Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. 2 - 5х + 2 = 0 квадрат теңдеуін шешу программасын InputBox функциясы мен ShowMessage процедурасын (операторын) пайдаланыпкұрыңыз.

  2. Жеңіл мәшине жүріп келеді. Оның жылдамдығы 230 км/саг - тан асса, "Жылдамдық шектен тыс,жылдамдықты азайтыныз" ескертуін шығару терезінде көрсететін көлденең белдеушенін Change оқиғасын өндеуіш процедурасын құрыңыз.

3. Random функциясы.

4. Const операторы

11-Дәріс. Массивтермен жұмыс

Бір атау арқылы байланыстырылған бір типті айнымалылардын (неолардың мәндерінің) жиынтығы массив депаталады. Сызықтық массивжәне матрицаменжұмыс істеу негіздері Паскальдағы сияқгы.

1-Мысал. 0..99 аралығындағы бүтін типті кездейсоқ n саннан тұратын сызықтық массивқұрып, оның минимумын, максимумын және орта мәнін табукерек (n = 500).

  1. Жаңа проекташу;

  2. Формада Label1, Button1 компоненттерін орнатып, олардың Captionқасиеттеріне мәндер меншіктеу (біріншісін бос ету,екіншісіне ОK мәнін меншіктеу);

  3. ОK түймесінің OnClickоқиғасын өндейтін процедурақұру:

procedureTForm1.OnClickClick(Sender: TObject);

const n=500; // массив элементтерінің саны

m=100; // кездейсоқ саңдар алынатын

// аралықтың жоғарғы шегі

var ms : array [1..n] of integer; //бүгін сандар массиві

k : integer; // массив индексі

min, max : integer; // ең кіші және ең үлкен сан

sum: real; // сандар қосындысы

begin

for k := 1 to n do

ms[k] := round(random(m)); // массивті кездейсоқ

// бүтін сандармен толтыру

min := ms[l]; max := ms[l]; sum := 0; for k := 1 to n do begin

sum := sum+ms[k]; if ms[k]<min then min := ms[k]

else if ms[k]>max then max := ms[k] ;

sum:= sum/n ;

Label1.Color:= clWhite;

Label1.Caption := 'min='+IntToStr(min) +#13 +'maxs'+IntToStr(max)

+#13+'orta man=' +FloatToStr(sum);

end ;

4. Проектіні сақтап, іске қосу. Көрінген форманың ОК түймесін шерту. Нәтижелік форма 2.20-суретте көрсетілген.

2.20-сурет. Нәтижелер шығарылған форма

Матрицамен жұмыс

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

1-топ 2-топ 3-топ

12,69

13,25

12,28

14,05

13,16

13,08

13,32

14,27

14,02

14,00

12,01

13,88

1

2

3

4

1. Жаңа проект ашу;

2. Формата Label1, Label2 өрістері менButton1 түймесін opнату;

3. Label1, Label1 компонеттерінің Caption қасиеттерінің мәндерін тазалау (босету), Button1 түймесінің сәйкес қасиетіне ОК мәнін, форманың сәйкес қасиетіне Нәтиже сөзін меншіктеу.

4. Код терезесінде Button1 түймесінің onClick оқиғасын өндейіш процедурасын құру.

procedure TffFixed.Button1Click(Sender: TObject);

var a : array [1..4, 1..3] of string;

s: array [1..3] of real; nomer, k, j : integer;

min : real; nomerT : string; begin

{енгізу терезесіне массив элемен-ттерін ретімен енгізу

for k := 1 to 4 do

for j := 1 to 3 do

a[kj] := InputBox(", 'кезекті элемент- ', ");

{op баган элементтерін косындььтаұ}

s[1] :=0; s[2] := 0; s[3] := 0;

for j := 1 to 3 do

for k:=1 to 4 do s[j]:= s[j]+StrToFloat(a[k,j]); {жеңімпаз топтын, жинаған барлық үпайы, топ нөмірі} min := s[1];

nomer := 1; for j := 2 to 3 do if s[j]<min then

begin

min := s[j]; nomer :=j;

end;

nomerT := IntToStr(nomer); min := min/4; {нәтиже}

Label1.Color := clWhite; Label1.Caption := '1-орынға шыкканы: '+ nomerT+' - топ';

Label2.Color := clWhite;

Label2.Caption :='Бір студенттің орташа уақыты'+FloatToStr(min, ffFixed,'');

end;

5. Проектіні сақтап, іске қосу. Форма көрінеді. Онын Button1 түймесін шерту. Енгізу терезесі көрінеді. Оған элементтерді енгізу. Нәтиже көрінеді (2.21-сурет).

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

Ескерту. Енгізу терезесіне элементтерді цикл бойыншаенгізу үшін ер элементклавиатрурадан енгізілген сайын оньщ ОК түймесін шерту неКҚ клавишін басу керек.

Жол. Жолдық стандартты функциялар. Мәтіндік массивті реттеу

Іс жүзінде бір символдық және жолдық шамалармен жұмыс жиі кездеседі (жолдық және мәтіндік сөздері баламалы).

Сандық тұрақтылар сияқгы, символдық, жолдық шамалардың мәндерін салыстыруға болатыны белгілі. Себебі, Windowsжүйесінде пайдаланылатын ANSI кодтарыкестесінде түрлі символдардың кодтары әртүрлі, мысалы asc('A')=65, asc(,C,)=67.Екі символдын қайсысының кодыжоғары болса. сол символдынрангісі (шені) жоғары деп қабылданған ‘А’<‘С’).

Мәтіндермен біріктіру (жалғастыру) және қиып (бөліп) алу амалдарын ғана орындау мүмкін. Delphi-де жалғастыру операциясыолардың аралығына + (плюс)таңбасын кою арқылы орындалады.

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

Length(a) - а мәтінінің ұзындығын анықтау (length -ұзындық). ФункцияInteger типті.

Concat (a, b)не а + b - а мен bжолдарын біріктіру.

Copy(a, m, n)- aмәтінінің m -символынан бастап n символын кесіп алу. ФункцияString типті.

Pos(st, a)-а жолынан stүзіндісін іздеп, жолдың басынан есептегенде үзінді басталган орынның нөмірін анықтау (үзінді табылмаса, оны нөлге (0) теңдеп нәтижелейді).

Сһг(а) - а коды бойынша символдыанықтау. ФункцияChar типті.

Ord (b) — b символының кодын анықтау. Функция Integer типті, т.б. Мысалы:

Length(‘мен’)=3; Сору(‘Ахметұлы’, 3, 5)=метұл;

Pos(‘мет’, ‘Ахметұлы’) = 3; Pos (‘раш’, ‘Мұратбек’) = 0.

Chr(65)='А'; Ord(‘A’)=65.

Кодтарын салыстыру арқылы латын әріптерімен жазылған адамдардың аты-жөндерін бірінші әріптері бойынша салыстырып, фамилияларды реттеу программасын жазып шығу қиын емес. Программада цикл ішінде цикл (бір-біріне салынған циклдер) пайдаланылады. Ұлттық әріптермен жазылған фа­милияларды реттеутәсілі төменде берілген (аты-жөндер массивэлементтері түрінде қарастырылады).

3-мысал. Қазақ әріптері бойынша төменде жазылған адамдардың аты-жөндерін бірінші әріптері бойынша реттеукерек.

Мәдіхожаев Сұлтан

Ысқақова Дамира

Мұстафаев Қажым

Атчабаров Жәнібек

Оралханова Маржан

  1. Жаңа проект ашу;

  2. Формаға Рапеl1. панельүстіне Button1, форманың жоғарғы жағына Memo1компоненттерін орнату;

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

Компонент

Қасиет

Мән

Форма

Panel 1

Button 1Memol

Font Caption

Caption

Align

Name

Align

ScrollBars

Wordwrap

Times Kaz, 10

Реттеу

<бос ету> alBottom

OK

alClient ssBoth

False [


4. Button1 түймесінің OnClick оқиғасын өндеуіш құру;

procedure TForm1.Button1Click(Sender: TObject); const n=5; var a : array [1..n] of string; d, k, j : integer; r: string; begin for k := 1 to n do a[k] := InputBox(a[k], 'кезекті элемент - ',''); r:='АӘБВГҒДЕЖЗИЙККЛМНҢОӨПРСТУФХ...'; d := length(r); {цикл ішінде цикл. Массивті реттеу} for j := 1 to d do for k := 1 to n do if copy(a[k], 1, 1) = copy(r, j, 1) then Memo1.Lines.Add(a[k]) end;

5. Проектіні сақтап, іске қосу. Формабетінде енгізу терезесі көрінеді. Оның өрісіне кезекті фамилияны енгізіп, ОК түймесін шерту. Реттелген фамилиялар форматерезесіне жазылып қойылады (2.22-сурет).

2.22-сурет. Реттелген массив

TStringList класы. Массивті класс қасиетін пайдаланып реттеу

TStringlist —жолдармен жұмыс істеуге арналған аталық TString класының алғашқы туынды класы. TstringList-ті пай­даланып,өткен тақырыпта берілген мысалдағы сияқты, формада орнатылған ТМето компонентінің терезесіне көп қатарлы жолдар, жолдық массив енгізуге болады және классқасиетін пайдаланып, олардыавтоматты түрде реттеу (сортmay) дамүмкін. Кластың әдістері мен қасиеттері жеткілікті (ол аталық кластың қасиеттерін пайдалана алатыны дабелгілі), мысалы,

Берілгендер жиынтығына жол қосу:

Function Add (Const: string): Integer;

Бұрынғы берілгендер жиынтығын өшіріп, жаңа жиынтық қосу:

Procedure Assign (Source : TPersistem);

Жолдарды алфавит бойынша сорттау.

Property Sorted : Boolean; // Sorted — True

Жиынтықта жолдардың атмдық санын анықтау.

Property Count : Integer; т.б.

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

  1. Жаңа проект ашып, формада Memo1, Button 1 компоненттерін орнату.

  2. Button1 түймесін екі рет шертіп, код терезесінде Button1Click процедурасын құру:

Procedure TForm1.ButtonlClick (Sender: TObject); var st: TStringList;

A : array [1..4] of string: k : byte:

begin

st := TStringList.Create: // класс данасын құру

st.Sorted := True; // сорттау

for k := 1 to 4 do

begin

a[k] := ІnputВох(‘Кезекті мән‘,’ ‘, ‘’);

st.Add (a[k]);

end;

st.Sorted := False; // сорттау аяқталған соң оны

//пайдаланбау Memol.Lines.Assign(st); //нәтижені шығару st.Free;//free - өшіру

end;

3. Іске қосу командасынберіп, көрінген форманың Button1 түймесін шерту. Одан әрі, көрінген енгізу терезесіне кезекпенен мысалда берілген тізім элементтерін енгізсе болғаны. Формаға енгізілген Memo1 компонентінің терезесінде аты-жөні бойыншасортталған массивкөрінеді

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. Жол. Жолдық стандартты функциялар.

  2. Мәтіндік массивті реттеу

3. TStringList класы.

4. Массивті классқасиетін пайдаланып реттеу

12-Дәріс. Процедура және функция. Рекурсия.

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

1-мысал. Тікбұрышты үшбұрыштың катеттері белгілі: а-4.5; b=5.2. Процедуражәне функцияенгізілген программалар арқылы оның периметрін табу керек.Нәтиже шығару терезесінде көрсетілсін.

1. Жаңа проект ашу.

Ішіне PifagPrатауы берілген қосалқы программа — проце­дураенгізілген форманың OnClick оқиғасын өндеуіш құру :

Procedure TForm1.FormClick(Sender: TObject);

var a, b, с, p : real;

Procedure PifagPr(a1, b1 : real; var c1 : real); // қосалқы

// процедура

begin

c1 := sqrt(sqr(a1)+sqr(b1)) // гипотенуза

end;

begin // негізгі процедура

a:=4.5; b1 := 5.2;

PifagPr(a,b,c); p := a+b+c;

ShowMessage(FloatToStr(p));

end;

2. Программаны сақтап, іске қосу.

Көрінген форманы шерткен кезде шығару терезесінде нәтиже көрінеді (2.23-сурет).

Piffunc функңиясы енгізілген программа:

Procedure TForml.FonnCliek(Sender : TObject); var a, b, p : real;

Function Piffunc(a1, b1 : real) : real; // қосалқы функция

begin

Piffunc := sqrt(sqr(al)+sqr(bl))

end;

begin // негізгі процедура

a :=4.5; b1 :- 5.2;

p := a+b+Piffunc(a, b);

ShowMessage(FloatToSir(p));

end;

2.23-сурет. Нәтиже

Кейде программаны рекурсия тәсілін пайдаланып құру да мүмкін (рекурсия - операторларының орындалуы кезінде ішкі программаның қайта айналып орындалуы).

2-мысал. n! мәнін рекурсияны пайдаланып табу керек(n! =1*2*3*...*n).

Жаңа проект формасына Edit1, Label1, Button1 компоненттерін орнатып, Edit1 компонентінің Text жөне Label 1 компонентінің Caption қасиеттерін тазалау; Button1 компонентінің факториалмәні есептелетін функцияенгізілген on Click оқиғасын өндеуіш құру:

function fact (k : integer) : integer;

begin

if k>1 then

fact := k * fact(k - 1) else fact := 1

end;

procedure TForm1.Button1Click(Sender : TObject); var n : integer; // факториал мәнін есептейтін сан

man : integer; // n! мәні

begin n:= StrToInt(Editl.Tеxt);

man := fact(n); // fact — функцияны шақыру

Label1.Caption := IntToStr(man);

end;

Программаны іске қосып және көрінген форманың Edit1 өрісіне 5санын енгізіп, Button 1 түймесі шертілгенде label1 өрісінде 120 саныкөрінеді. т.с.с.

3-мысал. Формаға Edit1, Button1 компоненттерін орнатып, Edit1 өрісіне төрт бүтін саннан тұратын массивенгізу (5, 24, -128, 40)және элементтерді кемімелі түрде ретімен кезекті қатарларға шығатын етіп, шығару терезесінде көрсету керек.

  1. Жана проект ашып, формаға сәйкес компонеттерді орнату;

  2. Edit1 компонентінің Text қасиетінің мәнін бос ету,Button1 компонентінің Caption қасиетіне OKмәнін меншіктеу;

Button1 түймесін екі шертіп, кодтерезесінде оның ОпСІіск оқиғасын өңдеуіш дайындамасын орнату. Дайындама ішіне процедурамәтінін енгізу және оның ішіне екі босорын символдарының аралығына енгізілген ішкі жолды ерекшелейтін GetSubStr атаулы функция енгізу:

Procedure TForm1.Button1Click(Sender: Object);

const n=4; // массив өлшемІ

vara : array [1..n] of integer;

k: integer; // цикл параметрі

st: string; // үзінді ерекшеленетін жол

Function GetSubStr(st:string; n1 : integer): string;

var m : integer; // үзінді алып тасталатын символ нөмірі

k : integer; // цикл параметрі

begin

for k := 1 to n1-1 do

begin

m := pos(' ', st);

st := copy(st, m+1, length(st)-m);

while (pos(' ', st)=1) and (length(st)>0) do

delete(st,1,1); // бос орынды алып тастау

end;

m := pos('', st); // қажетті үзіндінің соңғы нөмірі

if m>0 then

result := copy(st,1,m-1)

else

result := st;

end;

begin // негізгі программа

st := '';

for k := 1 to n do

st := st+IntToStr(k)+' '+GetSubStr(Edit1.text, k)+#13;

ShowMessage(st);

end;

  1. Программаны сақтап, іске косу командасын беру(F9). Формакөрінеді; оның Edit1 өрісін шертіп, курсордыорналастыру және араларында бос орындарқалдырып, есепте берілген массивэлементтерін енгізу (2.24-сурет);

2.24-сурет. Editlөрісіне енгізілген массивэлементтері

4. Ок түймесін шерту. Шығару терезесінде қатарлары номірленген элементтер кемімелі түрде бір баған бойында көрінеді (2.25-сурет).

ОК түймесі шертілген соң программаға енгізілген фик­цияалдымен бірінші ішкі жолды (5)ерекшелейді. Программаоны бүтін санға түрлендіріп, шығару терезесінде көрсетеді, т.с.с

2.25-сурет. Нәтиже

Программадағы Edit1.Text, k - нақты параметрлер; Result-стандартты айнымалы. Оған функцияқайтарып беретін нәтиже меншіктеледі.

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. Процедуралар.

  2. Функциялар.

  1. Рекурсия туралы ұғым.

13-Дәріс. TOLEContainer компоненті. OLE технологиясы.

Жалпы, OLE тех­нологиясы офистік қосымшаларда кеңінен пайдаланылады. Мысалы, Word мәтіндік редакторы терезесіне ClipArt-тан сурет кірістіру үшін Вставка-Рисунок-Картинки (Кірістіру-Сурет-Картинкалар) командасын беру жеткілікті екені белгілі.

OLEContainer (OLE контейнер) компоненті арқылы Del­phi-мен байланыстырылатын, автоматты турде жұмыс істейтін қосымшалар жеткілІкті. Мұндай тәсіл OLE автоматтандыруы делінеді. Мысалы, OLE автоматтандыруын пайдаланып, Excel-де мынадай есепті шешу керек болсын.

Есеп. Фирма кенсесінде 1 кеңсе бастығы, 2 орынбасар, 3 бөлім бастығы, 15 қызметкер, 4 лаборант, 5 тазалаушы кызмет істейді. Алғашқыда кызметкерлерге берілетін айлық жоспары 281750 т. болып белгіленген. Алатын айлықтары:

тазалаушы - 3500 т.,

лаборант - тазалаушыдан 1.5 есе артық,

қызметкерлер - тазалаушыдан 3 есе артық,

бөлім бастықтары - қызметкерлерден 20%-ке артық,

орынбасарлар - тазалаушыдан 4 есе көп,

кексе бастығы - орынбасарларға Караганда 20% көп алады.

Егер фирма айлық жоспарын 300 000 т. етсе, жоғарыдағы коэффициенттерді өзгертпей, олардың айлығын қалай өзгерту керек?

  1. Жаңа проект ашып, формаға OLEContainer компонентін орнату. Оны екі рет қайталап шерту. Объектіні кірістіру терезесі көрінеді;

  2. Терезеден List. Microsoft Excel қатарын тандап, Aшy түймесін шерту.Delphiтерезесінің үстіне MSExcelтерезесінің 1-беті көшіріліп қойылады.

  3. Бетті 2.26-суретте толтырылған ретпен толтыру. Мұндағы F10 ұяшығына қосынды ақшаны (сумманы) енгізу үшін оны тандап, Excel-дің аспаптар панелі қатарынан Z түй-месін екі рет шерту жеткілікті. Ұяшыққа 281750 саны енгізіліп қойылады.

  4. F10 ұяшығын ағымдық етіп, Сервис-Подбор параметра (Сервис-Параметрді іріктеу) командасын беру. Сәйкес сұхбаттық терезе көрінеді .

A

В

С

D

E

F

1

2

Жалақы

(тусініктеме)

Тазалаушы айлығы

қызмет атауы

Айлық

Саны

Қосындысы

3 4 5 6 7 8

1.D3

1.5.D3

3.D3

1,3.D5

4.D3

1.2.D7

3500

Тазалаушы

Лаборант

Қызметкер

Бөлім бастығы

Орынбасар

Бастық

=1*ВЗ =1,5*D3

=3*D3

=1,3*D5

=4'D3

= 1,2*D7

5

4

15

3

2

1

=5*D3

=4*D4

=15*D

5

=3*D6

=2*D7

=1*D8

9

10

Сум­ма =

2.26-сурет. Алғашқы айлық

2.27-сурет. Параметрді іріктеу терезесі

5. Терезенің Мән өрісіне 300 000 санын, төменгі өріске $B$3 адресін енгізіп, ОК түймесін шерту. Автоматты түрде Ай­лық кестесі сәйкес түрде өзгертіліп қойылады (2.28-сурет).

2.28-сурет. Автоматты түрде есептелген жаңа айлық

Консольдық қосымша

Delphi-де берілгендерді енгізу мен шығару үшін ТурбоПаскальда пайдаланылатын read (оқу) және write (жазу) оператсрларын пайдалану тәсілі де бар. Олардыпайдаланып құрылатын программалар, осы үшін арналған, MS-DOSоперациялық жүйесінде жұмыс істейтін консолдық қосымша терезесіне енгізіледі. Қосымшаны іске қосутәсілі:

  1. File-New Application (Файл-Жаңа қолданба) командасын беру:

  2. Көрінген Form1, Unit1.pas терезелерін жабу. Экранда Delphi мен Object Inspector терезелері қалады;

  1. Project-View Source (Проект-Көріп шығу) командасын беру. Project.dpr тақырыпты терезе ашылады;

  2. Терезені тазалау және экранды ақ түсті ету (соңғысы үшін терезенің таңдау түймесін шертіп, көрсеткіш арқылы экранды тандап шықса болғаны);

  3. Программа теру. Ол ASCІІ кодтары қолданылатын Турбо Паскаль программасындай жұмыс істейді. Программа мәтіні {SAPPTYPE CONSOLE} нұскауынан басталады (2.29-сурет). Ол консольдық қосымша дайындалатыны жөнінде компиляторнұсқауы. Мысалы,

Program MyProgr;

{SAPPTYPE CONSOLE}

Uses

SysUtils;

var x,y : real;

begin

Write('x=?'); readln(x);

y:= 3*x+5;

writeln(‘y=’, y : 6 : 3);

readln; end.

  1. 2.29-сурет. Консольдық терезе. Терезеге Енгізілген программа

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

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

1. OLE тех­нологиясы

2. OLEContainer компонентін

3. Консольдық қосымша

14-Дәріс. Программаны дұрыстау. Ерекше жағдайлар.

Программа құруда семантикалық (магыналық), синтаксистік және алгоритмдік қателер жиі кездеседі. Программаны компиляциялау кезінде синтаксистік қателерді компилятор өзі табады да, машина жұмысын тоқтатады. Aл, 15 орнына 25 енгізілген сияқгы қатені компилятор еске алмай, программаның орындалуы аяқталған кезде қате нәтиже шығады. Программада кате жазылған оператор сиякты алгоритмдік кате ле программаның орындалу нәтижесін дұрыс көрсетпейтіні сөзсіз. Сондықтан программанықұрып болған соң оны мұқият қайта тексеріп шығу керек.

Программаның синтакситік түрде жазылу дұрыстығын комптятордың өзі қадағалап отыруы және терезесін экранда көрсету үшін әдетте Delphi орнатылған сон ол күйге кел-тіріліп қойылады. Онын бірі — Project-Options (Проект-Күйге келтіру) командасын беріп, ашылған терезенің Compiler бетіндегі жалаушаларды 2.30-суреттегі сияқты орнатып кою керек.

2.30-сурет. Компиляторды күйге келтіру терезесі

Ерекше жағдайлар

Программаға нөлге бөлу және т.с.с. орындалмайтын қате әрекеттердің кездейсоқ енгізілуі де мүмкін. Олар ерекше жагдайлар делінеді. Ерекше жағдайларды өңду үшін Delphi-ге стандартты еңдеуіштер класы енгізілген. Өңдеуіштер атаулары Е әрпінен басталады:

EZeroDivide — нөлге бөлу;

ElntError — бүтін сандармен жұмыс кезінде кездесетін қателер;

EConvertError — мәннің типін түрлендіру қатесі, т.б.

Мысалы, мынадан программа үзіндісін

х:= 5;

for k := -2to 2do

begin

y:=x/k;

ShowMessage(FloatToStr(y));

end;

орындау кезінде нөлге бөлуге болмайтыны жазылған хабар шығады (k=0 болған кезде).

Ерекше жағдайды өңдеу үшін Delphiортасында блокты қорғау механизмі қарастырылған. Оның жазылу түрі:

try

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

except

<ерекше жағдайларды өңдеуіштер>

else

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

end;

Блокты қорғау блогы try(байқап көру) қызметші сөзінен басталып, end сөзімен аяқталады. Мұнда алдымен try ... ex­ceptбөлімінің операторлары орындалады. Егер операторлар ерекшеліксіз орындалса, қорғалған блоктың жұмысы осымен аяқталып, басқару end операторынан соңжазылған операторға беріледі. Егер ерекшелік бар болса,басқару except-тен соң жазылған бөлімге беріледі (блокқа elseбөлімін енгізу міндетті емес).

1-мысал. һ=1 қадам бойынша, [-2;2] кесіндісінде y=2х/(х+1) функциясының мәңдерін есептеу керек.

Ол үшін формата Button1 компонентін енгізіп, Button1Click процедурасын мынадай түрде қуруға болады:

procedure TForm1.Button1Click(Sender : Tobject); var у : real; x:integer; y1: string; begin try

for x:=-2 to 2 do

begin

y:=2*x/(x+l); yl:=FloatToStr(y);

ShowMessage(y1);

end;

except

on EZeroDivide do

begin

ShowMessage('Нөлге бөлу мүмкін емес');

Close;

end;

end;

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

2-мысал. ‘Ermek1’ файлыдискіде жазулы болсын. Оны ашу операторын try блогын енгізіп жазу керек. Программаүзіндісі:

varF :TextFile;

begin

AssignFile(F, 'Ermek1');

try

Reset(F);

except

//файл табылған жоқ

ShowMessage( ‘Файлды ашу мүмкін емес’ );

end; end;

Мұнда Reset опараторы бойынша файл ашылады, егер ол жоқ болса, try блогының екінші бөлімі орындалады (файлдар жөніңде төртінші тарауды қараңыз).

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

    1. Программаны өңдеу

2. Ерекше жағдайлар дегеніміз не? Оны Delphi -дің хабарлау түрі

3. try ... ex­cept операторлары

15-Дәріс. Принтерде басып шығару.

А1. Форманы ішіндегілерімен қоса принтерде басып шығу ушін TForm1 объектісінің Print атаулы әдісін шақыру жеткілікті (не File - Print командасын беруге болады)

А2. Программа мәтінін басып шығару үшін алдымен формаға Button 1 компонентін орнатып, ОпСІіск оқиғасын өндеуіш процедурасын мынадай түрде толтыру керек:

Procedure TForm1.ButtonClick(Sender: TObject);

var f: TextFile;

begin

AssignPrn(f); Rewrite(f); Writeln(f,<aтay>); CloseFile(f);

end;

мұндағы AssignPm(f) - мәтіндік айнымалыны принтермен байланыстыру, Rewritetf) – мәтінді оқу, Writeln(f,<amay>) -программа мәтінін басып шығару (<атау - модуль атауы>) CloseFile(f) - мәтіндік файлды жабу операторлары

2.31-сурет.Баспаны шығару.

Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]

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

  1. Блокты қорғау механизмі дегеніміз не? Оның программада жазылу түрі.

  2. N!мәнін есептеу программасын блокты корғау механизмін пайдаланыпжазыңыз.

  3. Форманы және программаны принтерде басып шығу тәсілдері.