- •Оқу жоспарының көшірмесі
- •1.5 Пәннің мақсаты мен міндеттері
- •1.6 Тапсырмалардың тізімі мен түрлері және оларды орындау кестесі
- •Тапсырмалардың түрі және оларды орындау мерзімі
- •1.7 Әдебиеттер тізімі
- •Бақылау түрлеріне қарай рейтингтік балдарды бөлу
- •Оқу процесінің күнтізбелік кестесі
- •Студенттердің білімдерін бағалау
- •1.9 Курстың саясаты мен процедурасы
- •2 Негізгі таратылатын материалдар мазмұны
- •2.1 Курстың тақырыптық жоспары
- •2.2. Дәрістік сабақ конспектілері
- •2.3 Лабораториялық сабақтардың жоспары
- •2 Тапсырма және оларды орындау реті
- •2 Тапсырма және оларды орындау реті
- •2.4 Оқытушының жетекшілігімен орындалатын студенттердің өзіндік жұмыстары бойынша өткізілетін сабақтардың жоспары (соөж).
- •2.5 Оқытушы көмегінсіз студенттік өзіндік жұмысының сабақ жоспары(сөж)
- •2.6 Өзіндік бақылау үшін тестілік сұрақтар
- •2.7 Курс бойынша емтихан сұрақтары
- •Аралық және қорытынды бақылаудың дұрыс жауаптарының кілттері
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 ортасы
- Delphi 7-тің негізгі терезесі;
- Форма (Form1);
- Объект инспекторы терезесі (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іске қосылғанда пайда болатын және көрінетін терезелер. Олар не үшін кажет?
Delphi терезесінде орнатылған негізгі мәзірдің ішкі мәзірлері. Оларға қандай командалар енгізілген?
Delphi терезесінің аспаптарпанеліне енгізілген негізгі түймелерді атап шығыңыз. Олар кандай іс-әрскеттерді орындайды?
Проект, форма дегеніміз не? Delphiіске қосылған кезде формакандай атлумен көрінеді?
Форма көлсмін өзгеріуге арналған қандайтәсілдерді білесіз? Оларды орындаңыз.
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]
Бақылау сұрақтары:
Қасиет дегеніміз не?Форманың негізгі қасиеттері, оларды өзгерту тәсілдері.
Object Inspector терезесі . Онда орнатылған қосымша беттер мен мазмұндары. Экранға қасиеттер (Object Inspector) терезесін шығару тәсілдері.
3. Оқиға дегеніміз не? Delphiортасында жиі қолданылатын оқиғаларды атап шығыңыз. Оқиғаны өндеуіш программасының дайындамасын дайындаудың негізгі тәсілі.
4. Программа жазылатын терезе атауы. Оның алғашқы рет ашылған кездегі көрінісі. Процедура дайындамасын объектінің қасиеттер терезесі арқылы орнатутәсілі.
5.Негізгі модуль дегеніміз не,оның құрылымы. Негізгі модуль тақырыбы. Uses кілттік сөз құрамына енгізілген нұсқаулар.
6. Әдіс дегеніміз не?Негізгі модульге қандай әдістер енгізілген, олардын іс-әрекеттері?
3-Дәріс Берілгендерді енгізу және шығару.
Delphi-де айнымалымәнін жадқа енгізу үшін ТурбоПаскальда пайдаланылатын Read (оқу) операторыжоқ. Программада ол үшін басқатәсілдердің қолданылуы мүмкін:
меншіктеу командасы;
енгізу терезесін пайдалану;
форманың 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 терезесінде көрсетілсін.
File-New Application командасын беріп, жаңа проект ашу. Forml терезесі көрінеді.
Форманы екі рет шерту. 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(Проект-Проектіні компиляциялау).Жүйенін сәйкес күйге келтіріуіне байланысты, іске қосу командасы берілген кезде компиляциялау барысы Compilingсұхбаттық терезесіне көрініп тұрады .
Комппляциялау командасы берілген кезде 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 ортасына шақырып, сурет салу және салынған суретті формада көрсету керек.
Жаңа форма ашып, онда OLEContainer 1 компонентін орнату.
Орнатылған компонентті екі рет шерту. Объектіні кірістіру терезесі көрінеді (2.11-сурет). Оған объект типтерінің тізімі енгізілген: Документ Microsoft Word, Лист Microsoft Excel, точечный рисунок Paintbrush, т.б.).Олардың кез келгенін тандап, Delphi ортасында іске қоса беруте болады.
Тізімнен Точечный рисунок Paintbrush қатарын таңдап, терезенің OKтүймесін шерту(КҚ клавишін басуға да болады). Delphi-гePaint графикалық редакторықосылып қойылады және формақыйта ашылады.
OLEContainer компонентін екі рет шерту. Такырыбына Точечный рисунок OleContainer1 - Paint жазылған Paint терезесі көрінеді (2.12-сурет). Paint мүмкіндіктерін пайдланып, төртбұрыш ішіне қолдан қалаған турде сурст салу және оны редакциялау әдеттегідей. Файл-Көшірмесін ...деп сақтау (Файл-Сохранить копию как ...)командасы арқылы салынған суретті сақтау.
2.11-сурет.Объектіні кірістіру терезесі
2.12-сурет. OleContainer1 - Paintтерезесі
5.Терезені жабу. Компонентішінде сурет салынған формакөрінеді (2.13-сурет).
2.13-сурет
Таймер Delphi-дің негізгі ерекшеліктерінің бірі - программа формада орнатылған компоненттер (пайдаланушы интерфейсі) оқиғаларын өңдеуіш процедуралар ретінде құрылады. Әр ком-поненттің өзіне тиісті қасиеттері, оқиғалары, әдістері бар. Онықұрылатын программаның алдын аладайындалған үзіндісі деп қарауға болады. Яғни, компоненттер программакөлемін азайтып, құруды жеңілдетеді.
Мысал. Компоненттерпанелінің Systemбетінле орналасқан Timer компонентін пайдаланып, формадажүріп тұрғанэлектрондық сағатты көрсету керек.
Жаңа проект ашып, формада Timer1, Label1 компоненттерін орнату (Label1-ді ішіне жүріп тұрған сағат көрсетуді жоспарлау);
Компоненттер қасиеттеріне мәндер меншіктеу:
Компонент |
Қасиет |
Мән |
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)типінің өрістері сияқты;
қасиеттер —обьект сипаттамалары (параметрлері);
әдістер —кластың өрістері мен қасиеттерін өңдейтін процедуралар мен функциялар;
объект —турлі мәндердің қасиеттері мен әдістерінің жиынтығы;
окиға — объект жағдайының өзгеруі.
класс - өрістер, касиеттер және әдістердің бірлігінен тұратын тип, не, жалпытурде, өңдеу әдістері неқасиеттері ортақ түрде сипатгалатын объектілер (нысандар) жиынтығы.
Жүйе объект үшін жадтың динамикалық облысынан арнайы орын қалдырады. Яғни, шын мәнінде, объект жай айнымалы емес, ол -жадтың динамикалық облысының кездейсоқ адресін сақтайтын көрсеткіш. Бірақ программада оған Турбо Паскальда пайданылатын көрсеткіш белгісі (^) енгізілмей жазылады.
Объект құрылған кезде автоматты түрде конструктор (constructor) деп аталатын әдіс шақырылып, ол объектіні динамикалықоблыста орналастырады, динамикалық жадтан объектіні арнайыдеструктор (destructor) әдісі жояды.
Сонымен, ОБП-да пайдаланылатын объект сөзінін екі мағынасы бар:нақты объект (мысалы, геометриялық дене, формада орнатылған компонент, т.б)және айнымалы (абстракты,дерексіз объект).Delphi-дeекінші объектнақты классданасын анықтайды.
Класқа иерархиялық (бағынышты, жоғарыдан төмен)кластардын енуі де мүмкін. Мысалы, геометриялық фигуралар класы жазық фигуралар және кеңістік фигуралары болатын екі ішкі кластық фигураларға бөлінеді. Ал жазық фигуралар класы төбелері бар(үшбүрыш, көпбұрыш) жәнс төбелерсіз (шеңбер, эллипс)болып екі ішкі класқа бөлінеді. Объектілі программалауда барлык кластар иерархиядлық түрде негізгі TObject класынан тарайды (Tobject → Tpersistent → Tcompofient → ...). Әдетте негізгі класты аталық, бағыныңқы кластарды туынды несәбилік кластар деп атайды (TObject -барлық кластардын арғы атасы, TComponent — барлық иерархиялықкомпоненттердің жоғарғысы (компонент депТcomponent класының мұрагері болатын класс данасын атайды)). Әр ұрпақ өзінің аталықкласының мүмкіндіктерін (өрістерінің, қасиеттерінің, әдістерінің сипаттамаларын) қабылдайды. Мысалы,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 модульдін Interface бөліміне формаға енгізілген компоненттер мен оқиғасы таңдалған әдістерді сипаттауды автоматты түрде енгізеді, әдістсрді іске асыру нұсқаулары молульдің 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 – жол, boolean - логикалық).
Бүтін және нақты типті айнымалылардың кейбірі, оларлы пайдалану мүмкін аралықтар және жадта бөлінетін байттық орындар 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 |
Символдық тип: char (Windows-та қолданылатын ANSI кодтарына енгізілген символдар).
Жолдық тип: 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]
Бақылау сұрақтары:
Берілгендер дегеніміз не ? Мысалдар келтіріңіз.
Delphi-де жиі пайдаланылатын берілгендер типтері.
Бүтін типтер түрлері. Integer, byte, word типті шамаларды пайдалануға болатын аралықтар және олардың жадта алатын орындары.
7-Дәріс Программаның жалпы түрде құрылымы.
Программаға ретімен мынадай бөлімдердің енгізілуі мүмкін {программа құрылымы):
программа тақырыбы (procedure неfunction);
ең бөлімі (label);
тұрақтылар бөлімі (const);
айнымалылар бөлімі (var);
қосалқы программалар бөлімі (процедуралар менфункциялар);
операторлар бөлімі.
Delphi-де тиянақты бір іс-әрекетті орындайтын программалық элемент жеке процедураарқылы жазылады.
Түсініп оқуға жеңіл болуы үшін күрделі программаның қажетті жерлеріне түсініктеме мәтіндер енгізіліп койылады. Түсініктеме оператор алдынаенгізілсе, фигуралық жакшалар ({ })ішінде орналастырылады. Егер ол операторсоңына енгізілсе, алдына \\ (екі теріс көлденең сызық) символдары жазылады. Соңғысын текбір жолдық, түсініктемеде пайдалану мүмкін. Мысалы,
1.{Трапеция ауданы }
s := (a+b)*h/2:
2.s := (a+b)*h/2;\\ трапецииауданы
Компьютер түсініктемені оқымай тастап кетеді, ол текпайдаланушыға программаның жазылуын түсінуді жеңілдету үшін қажет.
Қарапайым программа. Түс
Мысалы: Форманың Label өрістеріне мынадай бір шумақ өлең шығару керек:
Өлең сөздің патшасы, сөз сарасы,
Қиыннан қиыстырар ер данасы.
Тілгн жеңіл, жүрекке жылы тиіп.
Teп - тегіс жұмыр келсін айналасы.
(Абай)
File-New Application(Файл-Жаңа қолданба) командасын беріп, жаңа форма aшy:
Формаға бір баған бойында Labell, ..., LabeWжәне кез келген босжерінде Buttonlкомпонеттерін орнату;
Компонент қасиеттеріне мәндер меншіктеу.
-
Компонент
Қасиет
Мән
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]
Бақылау сұрақтары:
Программа құрылымы.
Түсініктеме дегеніміз не? Оның программада жазылу түрлеріне мысалкелтіріңіз.
х=5,2 үшін у=3х + функциясының мәнін есептеу программасын құрып, іске қосыңыз. Нәтижелік мән 5 : 3 дәлдік бойынша шығару терезесінде көрсетілсін.
8-Дәріс ТМеmо компоненті. Мәтінмен жұмыс.
Memo компоненті — String List editor атаулы арнайы терезесі бар мәтіндік редактор. Терезеге көп жолдық мәтінді енгізуге және оны редакциялауға болады. Мәтін TStrings класының Lines қасиетінде сақталады. Дайындалған мәтінді формабетіне шығару қиын емес.
Егер, өткен тақырыпта берілген өлең сияқты, мәтін көп жолдық болса, оны Memoкомпонентінің терезесіне енгізген дұрыс. Жұмыс тәсілі:
Жаңа проект aшy;
Компоненттер панелінің Standard қосымша бетінен формаға Memo1, Button1 компоненттерін орнату;
Компонентер касиеттеріне мәндер меншіктеу:
Компонент |
Қасиет |
Мән |
Мағынасы |
ButtonlMemol |
Caption Font Name Align ScrollBars (белдеуше) WordWrap (сөзді тасымалдау) Lines |
OKTimesKaz, 11 MmOutput AlClient SsBoth (eKey) False [TStrings] |
Атау Мәтінде қолданылатын шрифт Компонентке берілген атау Барынша кеңейту Memo терезесіне белдеушелердіорнату Тасымалдауды болдырмау Мәтін жолдары |
Memol компонентінің Lines қасиетін екі рет шерту. Редактор іске қосылып, String list Editor терезесі көрінеді.
Терезеге жоғарыда берілген бір ауыз өленді әдеттегідей енгізу (әр жол теріліп болған соң КҚ клавишін басу керек);
6.Терезенің ОК түймесін шерту. Өлең форма бетше енгізіліп қойылады (2.15-сурет);
7.Проектіні сақтау.
2.15-сурет. Memo1 терезінен көшірілген өлең
Тармақталу командасы. Құрама оператор
Тармақталу командасының қысқа және толық нұсқалары бар.Олардың жазылу түрлері:
if P then S // қысқа нұсқа
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 квадраттендеуін шешу керек.
Жаңа проект ашу;
Баған бойынша формаға Label 1, ..., Labet4 компоненттерін орнату;
Олардың оң жағына баған бойынша Editl, ...,Edit3 компоненттерін және форманың төменгі қатарына Button1 компонентін орнату; Label 4 өрісіне квадрат теңдеудің түбірлерін шығаруды, Edit1, Edit2, Edh3 ерістеріне a, b,с мәндерін енгізуді жоспарлау;
Объектілер қасиеттеріне мәндер меншіктеу;
Компонент |
Қасиет |
Мән |
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;
Проектіні сақтап, іске қосу командасын беру;
Мысалы, Edit1 ерісіне 1, Edit2 өрісіне 2,Edit3 өрісіне -3енгізіп, Button 1 түймесін шерту. Label4 өрісінде квадраттендеудің түбірлері көрінеді:
xl=3
х2=1
Негізгі әдебиеттер:2[37-56], 12[15-35], 7[17-32]
Бақылау сұрақтары:
Бір ауыз өленді форманың Label өрістеріне шығарыңыз.
Бір ауыз өленді Memo терезесіне жазып, оны форма бетіне шығарыңыз.
Қасиет және программа арқылы форманы, кескіндерді бояу тәсілдері. Түрлі түстер атаулары.
Тармақталу командасы дегеніміз не? Команданың түрлі түрде жазылу түрлеріне мысалдар келтіріңіз.
9-Дәріс. TRadioButton компоненті. Калькулятор
программасы.
TRadioButton -байланысты ауыстырып қосқыш компоненті. Формадаоның кемінде екеуі орнатылуы тиіс. Олар Checked (тексеру) қасиеті арқылы анықталатын текекі күйде болуы мүмкін: True және False. Проектіске қосылып, көрінген формада кай ауыстырып қосқыш шертілсе (Check қасиетін True мәні меншіктелсе), программада осыған сәйкес серия орындалады.
Формада екі санды қосу және азайту амалдарын орындайтын калькулятормоделін дайындау керек болсын.
Программаны түрлі нұскалы етіп дайындауға болады, оның бір түрін дайындаутәсілі (2-түрі 2.10-такырыпта берілген):
Жаңа формаaшy;
Формата 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;
Проектіні сақтау;
Проектіні іске қосу. 2.16-суретте бейнеленген формакөрінеді.
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 терезесіне шығарылсын.
Ортаны ашып, формада ScrollBarl және Label 1компоненттерін орнату.
Компоненттер касиеттеріне мәндер меншіктеу:
Компонент 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 беттеріне орналастырылған.
TBitBtn— TButton сияқты түйме компоненті. Айырмашылығы -ол формада орнатылған соң, үстіне таңдалған сурет енгізіп қоюға болады. Мысалы, Kind (түрлі
бейнелі) қасиетінің bkОК мәні тандалса, оның көріну түрі оң жақтакескінделген.
TPanel (панель) компоненті - формада орнатылған соң бетіне орнатылған бірнеше компонентті байланысты бір топ ретінде топтастырушы (контейнер кызметін аткарушы) тік төртбұрышты объект ретінде пайдаланылады;
TComboBox (Құрастырылған өріс) - формада тізім енгізілетін өріс түрінде көрінетін компонент. Программаның орындалу барысында тізімнен қажеттісі таңдалса, ол орнатылып қойылады.
Цикл
Циклдерді қолдану тәсілдері стандартты ТурбоПаскальдағы сияқты. While(әзірше), Repeat (дейін), For(үшін) циклдік құрылымдардың жазылу үлгілері:
While P do b
Begin
S
end;
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]
Бақылау сұрақтары:
5х2 - 7х + 4 = 0 квадрат тендеуін шешу программасын мәндер формаға шығатындай етіп құрыңыз.
Осы программа бойынша 3х2 -5х + 8 = 0 теңдеуін шешіңіз. Формада қандай мәлімет көрінеді, онын себебі?
Формада калькулятор моделін, сәйкес компоненттердің қасиеттерін орнату. Калькуляторға арналған программа мазмұны.
10-Дәріс Goto, Label операторлары. Бос оператор.
Кейбір жағдайларда циклді Goto М операторын пайдаланыпқұру не программада осы оператордыпайдаланып, енсалынған жолға сөзсіз өту жағдайлары кездеседі.
Goto М - М арқылы таңбаланған (ен салынған) жолға сөзсіз өту операторы (goto - өту, М - ен. Ен сан не символ болуы да мүмкін). Ен программаның Label бөлігінде сипатталып қойылуы тиіс: Label M;
Мысал. Енгізілген бүтін п санының жай сан не құрама сан екенін анықтау керек. (n>=3).
Жаңа проект ашу;
Формаға Edit1, Label1, Button1компоненттерін орнату;
Edit1-дің Text, LabeI-дің Caption қасиеттерінің мәндерін тазалау (бос ету), Button 7-дің Caption қасиетіне О К мәнін меншіктеу;
ОК түпмесін екі рет шертіп, көрінген кодтерезесінде процедура құру:
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;
Проектіні сақтап, іске қосу командасын беру. Формакөрінеді.
Оның Edit1 өрісіне саненгізіп, ОК түймесіншерту.
Өріске 89 саныенгізілген кезде форманың көрінісі 2.18-суретте бейнеленген.
2.18 – сурет. Санды жәй санға тексеру нәтижесі.
Random функциясы. Const операторы
Random(m) — 0..m-1 аралығында кездейсоқ санды тудыратын функция.
Мысал. Randomфункциясын пайдаланып, тиын ақшаны n рет лақтырғанда цифржағымен түсудің салыстырмалыжиілігін (w)жуық шамамен анықтау программасын құру керек (n рет сынақ жүргізілген кезде күтілген оқиға m ретпайда болса, w=m/n).
Тиын ақшаның цифржағымен түсу нетүспеу оқиғаларын 1, 0арқылы белгілеп, программаны мынадай түрде қуруға болады.
Жаңа проекташу;
Формада Label1, Label2, Label3, Button1 компоненттерін орнату;
Label өрістерінің Caption қасиеттерінің мәндерін бос ету;Button1 түймесінің Caption қасиетіне ОК мәнін меншіктеу.
ОК түймесін екі рет шертіп, программалық код құру:
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;
Проекті сақтап, іске косу. Формакөрінеді;
Оның ОК түймесін шерту. Енгізу терезесі көрінеді; Терезеге сынақ санын (мысалы, 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]
Бақылау сұрақтары:
3х2 - 5х + 2 = 0 квадрат теңдеуін шешу программасын InputBox функциясы мен ShowMessage процедурасын (операторын) пайдаланыпкұрыңыз.
Жеңіл мәшине жүріп келеді. Оның жылдамдығы 230 км/саг - тан асса, "Жылдамдық шектен тыс,жылдамдықты азайтыныз" ескертуін шығару терезінде көрсететін көлденең белдеушенін Change оқиғасын өндеуіш процедурасын құрыңыз.
3. Random функциясы.
4. Const операторы
11-Дәріс. Массивтермен жұмыс
Бір атау арқылы байланыстырылған бір типті айнымалылардын (неолардың мәндерінің) жиынтығы массив депаталады. Сызықтық массивжәне матрицаменжұмыс істеу негіздері Паскальдағы сияқгы.
1-Мысал. 0..99 аралығындағы бүтін типті кездейсоқ n саннан тұратын сызықтық массивқұрып, оның минимумын, максимумын және орта мәнін табукерек (n = 500).
Жаңа проекташу;
Формада Label1, Button1 компоненттерін орнатып, олардың Captionқасиеттеріне мәндер меншіктеу (біріншісін бос ету,екіншісіне ОK мәнін меншіктеу);
О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 |
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-мысал. Қазақ әріптері бойынша төменде жазылған адамдардың аты-жөндерін бірінші әріптері бойынша реттеукерек.
Мәдіхожаев Сұлтан
Ысқақова Дамира
Мұстафаев Қажым
Атчабаров Жәнібек
Оралханова Маржан
Жаңа проект ашу;
Формаға Рапеl1. панельүстіне Button1, форманың жоғарғы жағына Memo1компоненттерін орнату;
Компонент қасиеттеріне мәндер меншіктеу:
Компонент |
Қасиет |
Мән |
Форма
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 компонентінің терезесіне шығару керек.
Жаңа проект ашып, формада Memo1, Button 1 компоненттерін орнату.
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]
Бақылау сұрақтары:
Жол. Жолдық стандартты функциялар.
Мәтіндік массивті реттеу
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)және элементтерді кемімелі түрде ретімен кезекті қатарларға шығатын етіп, шығару терезесінде көрсету керек.
Жана проект ашып, формаға сәйкес компонеттерді орнату;
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;
Программаны сақтап, іске косу командасын беру(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]
Бақылау сұрақтары:
Процедуралар.
Функциялар.
Рекурсия туралы ұғым.
13-Дәріс. TOLEContainer компоненті. OLE технологиясы.
Жалпы, OLE технологиясы офистік қосымшаларда кеңінен пайдаланылады. Мысалы, Word мәтіндік редакторы терезесіне ClipArt-тан сурет кірістіру үшін Вставка-Рисунок-Картинки (Кірістіру-Сурет-Картинкалар) командасын беру жеткілікті екені белгілі.
OLEContainer (OLE контейнер) компоненті арқылы Delphi-мен байланыстырылатын, автоматты турде жұмыс істейтін қосымшалар жеткілІкті. Мұндай тәсіл OLE автоматтандыруы делінеді. Мысалы, OLE автоматтандыруын пайдаланып, Excel-де мынадай есепті шешу керек болсын.
Есеп. Фирма кенсесінде 1 кеңсе бастығы, 2 орынбасар, 3 бөлім бастығы, 15 қызметкер, 4 лаборант, 5 тазалаушы кызмет істейді. Алғашқыда кызметкерлерге берілетін айлық жоспары 281750 т. болып белгіленген. Алатын айлықтары:
тазалаушы - 3500 т.,
лаборант - тазалаушыдан 1.5 есе артық,
қызметкерлер - тазалаушыдан 3 есе артық,
бөлім бастықтары - қызметкерлерден 20%-ке артық,
орынбасарлар - тазалаушыдан 4 есе көп,
кексе бастығы - орынбасарларға Караганда 20% көп алады.
Егер фирма айлық жоспарын 300 000 т. етсе, жоғарыдағы коэффициенттерді өзгертпей, олардың айлығын қалай өзгерту керек?
Жаңа проект ашып, формаға OLEContainer компонентін орнату. Оны екі рет қайталап шерту. Объектіні кірістіру терезесі көрінеді;
Терезеден List. Microsoft Excel қатарын тандап, Aшy түймесін шерту.Delphiтерезесінің үстіне MSExcelтерезесінің 1-беті көшіріліп қойылады.
Бетті 2.26-суретте толтырылған ретпен толтыру. Мұндағы F10 ұяшығына қосынды ақшаны (сумманы) енгізу үшін оны тандап, Excel-дің аспаптар панелі қатарынан Z түй-месін екі рет шерту жеткілікті. Ұяшыққа 281750 саны енгізіліп қойылады.
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операциялық жүйесінде жұмыс істейтін консолдық қосымша терезесіне енгізіледі. Қосымшаны іске қосутәсілі:
File-New Application (Файл-Жаңа қолданба) командасын беру:
Көрінген Form1, Unit1.pas терезелерін жабу. Экранда Delphi мен Object Inspector терезелері қалады;
Project-View Source (Проект-Көріп шығу) командасын беру. Project.dpr тақырыпты терезе ашылады;
Терезені тазалау және экранды ақ түсті ету (соңғысы үшін терезенің таңдау түймесін шертіп, көрсеткіш арқылы экранды тандап шықса болғаны);
Программа теру. Ол 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.
2.29-сурет. Консольдық терезе. Терезеге Енгізілген программа
Негізгі әдебиеттер: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 ... exceptбөлімінің операторлары орындалады. Егер операторлар ерекшеліксіз орындалса, қорғалған блоктың жұмысы осымен аяқталып, басқару 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]
Бақылау сұрақтары:
Программаны өңдеу
2. Ерекше жағдайлар дегеніміз не? Оны Delphi -дің хабарлау түрі
3. try ... except операторлары
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]
Бақылау сұрақтары:
Блокты қорғау механизмі дегеніміз не? Оның программада жазылу түрі.
N!мәнін есептеу программасын блокты корғау механизмін пайдаланыпжазыңыз.
Форманы және программаны принтерде басып шығу тәсілдері.