Объектті бағытталған программалау

К І Р І С П Е

Объектті бағытталған программалаудың негізгі түсінігі және программаның элементі болып мәліметтердің жиынтығын, сондай.ақ оларға жасалатын әрекеттерді үйлестіретін объект болып табылады. Delphi тіліндегі қолданбалы бағдарламалар немесе қосымшалар IDE (Integrated Development Environment) дамып отыратын құрылымдық ортада орындалады. IDE ортасы бағдарламаушының қарым.қатынасын ұйымдастырып, әр түрлі басқару элементтерінен құралған бірнеше терезелерден тұрады. Осы ортаның құралдарын пайдалана отыры, қосымшаның интерфейстік бөлігін жобалауға, программаның кодын жазуға және оны басқару элементтерімен байланыстыруға болады. Аталған жұмыстар және бағдарламаны түзету, оны орындау әрекеттері IDE ортасында орындалады.
Delphi.дің IDE ортасы көптерезелік жүйе деп саналады. Delphi оқиғалар бойынша басқарылатын объектті бағытталған, визуалды.программалау тілі болып саналады, және жалпы мөлшерде жобалаудың қазіргі құралдарына ұсынылатын жаңа талаптарға сәйкес келеді.

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


1 1.ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС «СЫЗЫҚТЫ АЛГОРИТМДЕРДІ БАҒДАРЛАМАЛАУ»

Лабораториялық жұмыстың мақсаты: визуалды ортаның негізгі элементтерін меңгеру, мәліметтерді енгізу/ шығару үшін DELPHI қарапайым құраушыларын пайдалануды меңгеру, және сызықты алгоритмді пайдаланатын қосымшаны құру.
1.1 DELPHI визуалды ортасы

DELPHI.ді жүктегенде экранда 1.1. суретте көрсетілген интерфейс панелі шығады. DELPHI ортасы монитор экранында біруақытта ашылатын бірнеше терезелер түрінде визуалды іске асырылады. Терезелердің саны, орналасуы, өлшемі және түрі программистпен өзгертілуі мүмкін.
Негізгі терезе экранда әрқашанда бар болады және қосымшаны құру үрдісін басқару үшін арналған.
Негізгі меню үрдісті басқару үшін барлық қажетті құралдардан тұрады.
Негізгі меню пиктограммалары көбінесе жиі қолданылатын командалармен жұмыс жасауды жеңілдетеді.
Компоненттер Палитрасы Форма терезесіне программистпен орналастырылған кейбір элементті (компонентті) сипаттайтын, DELPHI ортасының кітапханалық программалар жиынтығына рұхсатты қамтамасыз
        
        К І Р І С П Е
Объектті бағытталған программалаудың ... ... ... ... болып мәліметтердің жиынтығын, сондай-ақ оларға
жасалатын әрекеттерді үйлестіретін объект болып табылады. Delphi ... ... ... ... IDE ... ... ... отыратын құрылымдық ортада орындалады. IDE ортасы
бағдарламаушының қарым-қатынасын ұйымдастырып, әр ... ... ... ... ... ... Осы ортаның құралдарын
пайдалана отыры, қосымшаның интерфейстік бөлігін жобалауға, ... ... және оны ... ... ... болады. Аталған
жұмыстар және бағдарламаны түзету, оны орындау әрекеттері IDE ортасында
орындалады.
Delphi-дің IDE ортасы ... жүйе деп ... Delphi ... ... объектті бағытталған, визуалды-программалау тілі болып
саналады, және жалпы мөлшерде жобалаудың қазіргі ... ... ... ... келеді.
Бұл әдістемелік ңұсқауда жүйенің әр түрлі құралдарын пайдалану
мысалдары келтірілген, әр ... ... ... ... ... жұмыстардың варианттары келтірілген.
1 1-Лабораториялық жұмыс «Сызықты ... ... ... ... ... ... негізгі элементтерін
меңгеру, мәліметтерді енгізу/ шығару үшін DELPHI ... ... ... және сызықты алгоритмді пайдаланатын қосымшаны құру.
1.1 DELPHI ... ... ... ... 1.1. ... көрсетілген интерфейс панелі
шығады. DELPHI ортасы монитор ... ... ... ... ... визуалды іске асырылады. Терезелердің саны, орналасуы,
өлшемі және түрі программистпен ... ... ... ... ... бар ... және ... құру үрдісін
басқару үшін арналған.
Негізгі меню үрдісті басқару үшін барлық қажетті құралдардан тұрады.
Негізгі меню ... ... жиі ... ... ... ... Палитрасы ... ... ... ... ... ... сипаттайтын, DELPHI
ортасының кітапханалық программалар жиынтығына рұхсатты қамтамасыз етеді.
Әрбір компонент ... ... ... ... ... ... ... бойынша таңдап алады және өзгерте алады. Мысалы, терезе
аты, батырмадағы жазу, шрифтің ... ... түрі және т.б. ... HELP-та келтірілген .
Объекттілер Инспекторы терезесі ... ... ... ... үшін ... және екі беттен тұрады. Properties
(Қасиеттер) беті ... ... ... ... үшін ... ... беті– қандай да бір оқиғаға компоненттің реакциясын
анықтау үшін ... ... ... ... басу).
Форма терезесі жобаланатын Windows-қосымшасының интерфейсін ұсынады.
Осы терезеге қосымшаны жобалау ... ... ... компоненттерді өңдеуші Компоненттер Палитрасынан алады.
Жобаның әрбір Формасына модуль (Unit) сәйкес келеді, оның Object ... ... Код ... ... ... Редакторы терезесі жоба модулінің мәтінін көру, құру ... үшін ... ... ... Код ... ... ... бос Форманың қалыптасуы үшін ... ... ... модуль мәтіні болады. Форма терезесінде
кейбір ... ... ... ... ... ... түрде
қажетті операторлармен толықтырылады.
Форманы құру, клавиатура пернесін немесе тышқан батырмасын басу, т.б.
сияқты жүйеде ... ... ... ... Windows ... қажетті хабарламаларды жіберу арқылы ақпараттайды. DELPHI
ортасы оқиғаларды өңдеушілер көмегі арқылы ... ... ... ... “тышқан” батырмасын басу– OnClick оқиғасы, Форманы құру –
OnCreate). Көбінесе жиі қолданылатын ... 1.1. ... ... кесте. Оқиғалар ... ... ... ... ... ... кезінде қалыптасады ... ... құру ... ... ... оқиғаның |
| ... ... құру ... ... ... |
| ... ... ... ... мәндерді орнату. ... ... ... ... ... басу ... |
| ... ... ... ... ... ... екі рет басу |
| ... ... ... ... ... басу ... ... Key |
| ... Char ... ... және басылған перненің |
| ... ... (Enter ... нің коды #13, Esc |
| ... - #27 және ... Әдетте бұл оқиға пернелердің|
| |бірін басу ... ... ... ... ... |
| ... ... ... ... басу ... ... Бұл ... |өңдеушісі басылған ... және Shift, Alt, Ctrl ... |
| ... , ... ... ... ... туралы |
| ... ... . ... ... құру үшін программист Объектілер Инспекторы
терезесінің жоғарғы жағында компоненттер ... ашуы және ... ... ... Содан кейін, Объектілер Инспекторының Events
бетінде, тышқанның сол жақ батырмасын басу арқылы өңдеушінің атын ... оның оң жақ (ақ) ... екі рет ... ... Оған ... ретінде
DELPHI Код Редакторы терезесін активтейді және ... ... ... дайындамасын көрсетеді. Әрбір өңделетін оқиға үшін модуль
мәтінінде ... ... ... бұның begin және end ... ... ... Object Pascal тілінде оқиға өңдеушісінің талап
етілетін ... ... ... және Код ... терезесі арасында ауысу негізгі меню
батырмасы пиктограммасы арқылы немесе F12 пернесі арқылы орындалады.
1.2 ... құру ... ... ... ... үшін ... құру
.
Берілген x, y және z сандық мәндерін интерфейс ... ... ... ... Құрастырып жатырған қосымшаның интерфейс
панелінің ... ... бірі 1..2. ... көрсетілген.
1.2.1 Жобаны сақтау
Қосымшаны жобалау үрдісі кезінде DELPHI бірнеше файлдарды құрады -
жоба. Әрбір жобаны алдын ала ... жеке ... ... дұрыс. Windows
сәйкес келетін қосымша көмегімен папка құрып, оны LAB1 деп атайық.
Жобаны сақтау үшін негізгі ... File ... ... ... Save Project As…(Сохранить проект как…) опциясында шертіңіз.
DELPHI бірінші жоба ... ... үшін Save Unit1 As ... ... ... ... ... Осы панелден құрылған LAB1 папкамызды табамыз
және соның ... ... ... UnLinAlg ат ... ... ... , DELPHI бұл файылға үнсіздік бойынша *.pas кеңеюі бар Delphi unit
типін меншіктейді. ... соң Save Project1 As ... ... ... ... ... PrLinAlg ат беріп осы папканың ішіне сақтайық. ... ... Delphi project ... және *.dpr кеңейтілуін береді. Назар
аударыңыздар, енді DELPHI негізгі терезесі ... ... ... ... ... ал жоба ... ... UnLinAlg.pas деп аталады.
DELPHI ұсынатын бірқалыпты Unit1 және Project1 орнына, файлдарға
мағынасы бар ат ... ... ... тоқ ... сөніп қалуы немесе жүйенің істен шығып
кетуімен және т.с.с. ... ... жоба ... ... ... ... ... пиктограммасын немесе File менюынан .
Save All опциясын пайдаланып периодты ... ... ... ... ... ... жұмыс жасау үшін, терезенің кез-келген жерінен “тышқанмен”
шерту арқылы оны белсенді қылу ... ... ... аты ... ... 1.1 суретте белсенді болып Код Редакторы терезесі болып
табылады.
Форма және модуль Коды ... ... ... оң ... ... ... болады, олар: - терезені пиктограммаға
жабу үшін, - терезені бүткіл экранға ашу үшін және, ... келу ушін ... жабу үшін ... ... ... Код Редакторы, Объектілер Инспекторы
терезелерінің ... ... және ... ... орналасуын реттеңіздер.
1.2.3 Форма атын өзгерту
Жаңа Форманың бірдей (Name) аты және тақырыбы(Сaption) - FORM1 ... ... ... атын ... ... жоқ, ... ол модуль
мәтінінде қолданылады.
Тақырыбын өзгерту үшін Объектілер Инспекторының терезесін белсенді
қылыңыздар және Properties ... Caption ... Form1 ... ... №1-Сызықты алгоритм -деп өзгертіңіз. Біруақытта Форма
терезесінің тақырыбы аты өзгергеніне көз жеткізіңіз.
1.2.4 Формада компоненттерді орналастыру
Формада компонентерді 1.2. ... ... ... ... ... ... енгізу үшін Label компоненті қолданылады.
Компоненттер Палитрасында Standard ... Label ... ... ... және оның ... “тышқанмен” шертіңіз. Осыдан
кейін Форманың керек жерінен “тышқанмен” ... - Label1 ... ... ... ... Caption қасиетінде Label1 жазуын X мәнін
енгізіңіз- деп ... Font ... ... ... ... ... ... жазуларды енгізіңіз. Кез-келген орналастырылған
компоненттердің біріне “тышқанмен” шертіп, оның ... ... ... ... ... үшін ... жағдайларда Edit және Memo
компоненттері қолданылады. Edit ... ... бір ... ... ... Егер ... бірнеше жолдардан тұрса,
онда Memo ... ... y және z ... сандық мәндерін енгізу өрістерін құру үшін
Edit компонентін қолданамыз. Компоненттер Палитрасының Standard ... ... және Edit ... ... ... жеріне
орналастырыңыздар.
Нәтижелерді шығару үшін Memo компонентін қолданамыз. ... Standard ... ... таңдаңыздар, Memo
компонентін Форманың керек жеріне орналастырып, орналасуын және өлшемін
реттеңіздер.
1.2.5 Форма құру ... ... ... ... ... интерфейс панелі пайда болған кезде экранда сәйкес
өрістерде мәліметтердің ... ... ... ... ол ... ... кезде Форманы құру (OnCreate) оқиғасы шығатынын ескеруі
керек. x, y, z айнымалыларының бастапқы мәндерін ... Edit1, ... Edit3 ... ал Memo1 ... Лабораториялық жұмыс №1 – ... ... ... осы оқиғаның өңдеу процедурасын құрастырайық. ... ... ... ... бос ... шертіңіз. Экранда UnLinAlg
модулінің мәтіні пайда болады, мұнда DELPHI ... ... ... ... ...... : ... ... Осы ... begin және ... ... қажет әрекеттерді орындайтын операторларды енгізіңіз
(модуль мәтіні қ.1.2.7 көрсетілген).
1.2.6 ... басу ... ... ... жазу ... ... ... Формаға орналастырайық. Компоненттер
Палитрасында Standart бетінде Button компонентінің ... ... ... Caption ... ... ... ... ауыстырыңыз. Font қасиетінде шрифтті өзгертіңіз.
Батырманың орналасуын және өлшемін ... ... ... батырманың
үстінен “тышқанмен” екі рет шертіңіз, сонда курсор Button1 батырмасын
басу оқиғасын өңдеуші ... ... ... ... UnLinAlg модулінің мәтінін пайдаланып
осы процедураның операторларын ... ... UnLinAlg ... ... UnLinAlg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: ... ... ... ... FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations ... ... ... ... құру ... өңдеушісінің процедурасы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0.4'; // X ... ... ... // ... ... ... // Z–тің бастапқы мәні
Memo1.Clear; // Memo1 ... ... ... шығару:
Memo1.Lines.Add('Лабораториялық жұмыс№1 – Сызықтық алгоритм);
end;
// Button1 батырмасын басу оқиғасының өңдеуші процедурасы:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z,a,b,c,u : ... // ... ... ... // X -ке Edit1 мәні ... // Y -ке Edit2 мәні меншіктеледі
z:=StrToFloat(Edit3.Text); // Z -ке Edit3 мәні ... ... ... = '+Edit1.Text+' Y = '+Edit2.Text+
' Z = '+Edit3.Text); // ... X, Y, Z ... ... ... ... U = ... және Memo ... жұмыс жасайтын мәліметтер String
түрінде ... ... ... процедурасында StrToFloat
функциясы көмегімен X,Y,Z айнымалыларына Edit1,Edit2,Edit3 өрістерінің
мәндері меншіктелген ... String ... ... ... ... ... бар нақты мәндер түріне ауысуы орындалады.
Бүтін түрдегі мәліметтермен жұмыс жасау ... ... StrToInt ... Memo1-ға шығарған кезде Lines қасиетінің Add әдісі
пайдаланылады. Мәліметтерді нақты мәннен жолдық ... ... үшін ... ... ... ... ... FloatToStrF функциясы
пайдаланылады.
1.2.8 Қосымшамен жұмыс
Құрылған қосымшаны орындалуға жіберу үшін бас ... ... ... F9 ... ... Осы ... ... және, егер қате жоқ болса, жобаның ... ... ... файлдың құрылуы орындалады. Экранда қосымша
интерфейсінің панелі шығады (сурет 1.2).
“Тышқанмен” “Есептеу” ... ... және Memo1 ... ... Edit ... x, y, z-тің ... ... өзгертіңіз және
қайтадан ”Есептеу” батырмасын басыңыз. Memo1 өрісінде жаңа мән ... ... ... ... ... ... панелінің жоғарғы оң
жақ бұрышында орналасқан батырмасын басу арқылы болады.
Қосымшаның штатсыз жұмыс ... ... ... ... ... менюында ProgramReset опциясын таңдау немесе Ctrl+F2 ... ... ... ... ... Өзіндік тапсырманың орындалуы
Оқытушының нұсқауы бойынша өздеріңіздің жеке ... ... ... ... ... ... санын және түрін
нақтылап алыңыздар. Осыған сәйкес жобаланатын ... ... ... ... Edit өрісінің қажетті санын, Форма
тақырыбының мәтінін, шрифт өлшемдерін, сондай-ақ нәтижелерді енгізу/шығару
кезіндегі ... ... және ... функцияларын
орналастырыңыздар.
Жеке тапсырмалар.
1.
Келесі мәндер бойынша x=14.26, y=-1.22, z=3.5( t=0.564849.
2.
Келесі мәндер бойынша x=-4.5, ... ... ... ... ... x=3.74, ... z=0.16 v=1.0553.
4.
Келесі мәндер бойынша x=0.4 ,y=-0.875, z=-0.475 w=1.9873.
5.
Келесі мәндер ... ... y=4.642, z=20.001 ... 2- ... жұмыс
Тармақталған алгоритмдерді бағдарламалау
Лабораториялық жұмыстың мақсаты: қарапайым ауыстырғыш-компоненттердің
пайдалануын меңгеру және тармақталған алгоритмді пайдаланатын ... ... ... құру мысалы
Тапсырма: Келесі шаманы есептеу үшін Windows-қосымша құру
Z=, ... ... ... бойынша.
Интерфейс панелінде бастапқы мәліметтердің бақылау нәтижесін басқару
мүмкіндігін алдын ала ... ... ... ... ... мүмкін
варианттарының бірі 2.1. суретте көрсетілген
2.1.1 Формада компоненттерді орналастыру
Формада компонентерді 2.1- суретте көрсетілгендей орналастырайық
DELPHI –де ... ... ... ... ... ... жиі қолданылады. Бұндай батырманың күйі (қосылған ... ... ... ... бейнеленеді. Панелде( 2.1 ... ... екі түрі ... CheckBox және ... ... компоненті тәуелсіз ауыстырғыш батырманы ұйымдастырады, бұның
көмегімен пайдаланушы “ия/жоқ” түріндегі ... ... ... ... ... батырмалар тобынан тұрады – тәуелді ауыстырғыштар.
Батырмалар тобының бір батырмасын басқан ... ... ... ... суретке сәйкес Label, Edit және Memo ... ... ... ... Standard бетінен CheckBox
компонентінің ... ... ... және ... ... ... ... Инспекторының Caption қасиетінде CheckBox1
жазуының орнына мәліметтердің бақылау нәтижесі- деп ... . ... ... кезде CheckBox батырмасы қосылған болу ... ... True- деп ... Компоненттер Палитрасынан RadioGroup компонентінің
пиктограммасын таңдап алыңыз және ... ... ... ... ... RadioGroup1 атын f(x) деп өзгертіңіз. Батырмаларды ... ... ... Columns ... 1-ге тең деп ... Items ... оң жағына екі рет шертіңіз - батырмалар аты
тізімінің ... ... ... ... Екі ... ат ... бірінші
жолға- sin(x), екінші жолға - cos(x) және ... ... ... ... ... ... бар екі батырма-ауыстырғыштан тұратын топ пайда
болады. Қосымшаны орындалуға жіберген кезде ... ... ... болу ... ... ... 0-ге деп ... FormСreate және Button1Сlick оқиғаларын өңдеуші процедураларын
құру
Технология создания процедур обработки ... ... ... ... өңдеуші процедураларын құру технологиясы алдыңғы
жұмыстан ... жоқ. ... ... ... пайдаланып осы
процедуралардың операторларын мұхият теріңіздер.
2.1.3. UnRazvAlg модулінің мәтіні
Unit UnRazvAlg;
interface
uses
Windows, Messages, SysUtils, Classes, ... ... ... ... = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label4: TLabel;
Memo1: TMemo;
Button1: TButton;
RadioGroup1: TRadioGroup;
CheckBox1: ... ... ... ... ... Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// Форма құру оқиғасы өңдеушісінің процедурасы:
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0.5'; // X тің ... ... // Y тің ... ... // Memo1 ... Жолдың Memo1-ге шығуы:
Memo1.Lines.Add(‘Лабораториялық жұмыс №2 – ... ... Button1 ... басу ... ... процедурасы:
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z,fx : extended; // локалды айнымалыларды хабарлау
begin
x:=StrToFloat(Edit1.Text); // X -ке Edit1 мәні ... // Y –ке Edit2 мәні ... // fx-ке ... мән
меншіктеледі
// Басылған батырмаға сәйкес ... ... ... of
0:fx:=sin(x);
1:fx:=cos(x);
end;
// Шаманың есептелуі:
if xxk;
end;
end.
3.3 Өзіндік тапсырманың орындалуы
Оқытушының нұсқауы бойынша өздеріңіздің жеке тапсырмаңызды ... ... ... оның жұмысын тестілеңіз.
Жеке тапсырмалар
№1 - №15 тапсырмалары үшін қадамы бар нен дейін x
мәндері үшін Y(x) ... және оның S(x) ... ... ... ... шығару қажет. x мәндерінің барлық диапазонында S(x) және
Y(x) ... ... S(x) және Y(x) ... ... ... |n |Y(x) |
| |c] | | | | |
| | | | | | |
|1 |0.1|1 | |16 | |
| | | | | | |
|2 |0.1|1 | |10 | |
| | | | | | |
|3 |0.1|1 | |12 | |
| | | | | | |
|4 |0.1|1 | |8 | |
| | | | | | |
|5 |0.1|1 | |14 | |
| | | | |[pi| |
|6 |0.1|1 | |c] | |
| | | | |8 | |
| | | | | | |
|7 |0.1|1 | |12 | |
| | | | | | |
|8 |0.1|1 | |10 | |
| | | | | | |
|9 |0.1|1 | |14 | |
| | | | | | ... |0.1|0.5 | |15 | |
| | | | | | ... |0.1|0.8 | |10 | |
4 ... ... ... ... ОТЫРЫП АЛГОРИТМДЕРДІ
ПрограммаЛАУ»
Лабораторлық жұмыстың максаты: StringGrid компонентін қолдануды игеру
және массив қолданылатын қосымша құру.
4.1 ... құру ... ... j=1,2,…,m)матрицасының р-ші жолына тең
x={x1,x2,…,xm} ... және ... ... ... q-ші ... тең ... ... есептеу үшін
Windows-қосымшасын құру. Интерфейс тақтасында массивтер ... ... ... ... ... ... ... бірі 4.1
суретте көрсетілген.
4.1.1 Формада компоненттердің орналасуы
Массивтермен жұмыс істегенде ақпаратты ... ... және ... ... арқылы ұйымдастыру қолайлы.
StringGrid компоненті ақпаратты кесте түрінде бейнелеу ... ... екі ... ...... және ... ... жұмыс аймағының жолдары мен бағаналарының атауларын шығару үшін және
олардың көлемдерін “тышқан” көмегімен басқару үшін керек. ... ... ... ... және оған ... ... тақтасынан енгізуге
болмайды. Бекітілген аймақтың жолдары мен ... саны ... және ... қасиеттерінде белгіленеді.
Жұмыс аймағы RowCount жолдары және ColCount ... ... ... ... және ... ... ... тақтасы көмегімен
өзгертуге болады.
Программадағы ақпаратқа кіру мүмкіншілігі ... ARow: ... ... ... ... асырылады, мұнда ACol- бағана нөмірі, ал ARow
–жол нөмірі, ... 0-ден ... ... ... ... ... ... орналасқан. Біздің тапсырмада ... ... үшін ... ... ... ... FixedCols және FixedRows қасиеттерінің мәндерін 0 ... ... ... ... ... үшін ... ... және бағаналар санының m шекті ... ... ... ... (8 ... және 6 жол). ... ... үшін ColCount=1,
RowCount=8, ал StringGrid3 комопоненті үшін ColCount=1, RowCount=6.
StringGrid компонентіне үнсіздік бойынша ақпаратты ... ... ... ... ... ... компоненті үшін объектілер
инспекторында Options қасиетінің символында ... екі рет ... ... ... ... ... ... мәнін True деп белгілейміз.
SpinEdit компоненттерімен жұмыс істеу ыңғайлы болу үшін ... үшін ... ... ... ... MaxValue=6, ал
SpinEdit2 компоненті үшін: MinValue=1, MaxValue=8.
4.1.2. SpinEdit1Change және ... ... ... ... және ... оқиғалары сәйкесінше SpinEdit1
және SpinEdit2 редактор өрісінде мәндердің кез-келген өзгеруінде пайда
болады, бұл ... ... ... ... ... ... өрісінде алынған n және m мәндерін StringGrid компонентінің
ColCount және RowCount ... ... Бұл ... ... ... ... StringGrid кестесінің көлемдерін
басқаруға мүмкіншілік береді, себебі SpinEdit редактор өрісінің мәндерінің
өзгеруі StringGrid ... ... ... ... ... ... екі рет ... – курсор SpinEdit1Change
оқиғасын өңдеу процедурасының ... ... ... ... UnMas ... ... қолданып
(4.1.3 б. қара), бұл процедураның ... ... ... ... ... процедурасын құрыңыздар: procedure
TForm1.SpinEdit2Change(Sender: TObject).
4.1.3 UnMas модулінің мәтіні
Unit ... ... ... Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Spin, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
Label8: TLabel;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label2: TLabel;
Label3: ... ... ... ... ... TLabel;
Label7: TLabel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure ... ... Private ... ... Public ... ... TForm1;
implementation
{$R *.DFM}
var
A:array[1..6,1..8] of extended;// екі өлшемді А массивін жариялау
X:array[1..8] of extended; // бір ... Х ... ... of ... // бір өлшемді Y массивін жариялау
n,m,p,q:integer; // ... ... ... ... TObject);
begin
SpinEdit1.Text:='4'; // n-нің ... ... // m-нің ... ... // p-дің ... ... // q-дің ... ... // A ... ... ... // A ... ... саны
StringGrid2.RowCount:=6; // X массиві жолдарының саны
StringGrid3.RowCount:=4; // Y массиві жолдарының саны
end;
procedure ... ... n-ге ... ... ... // A массиві жолдарының саны бекітіледі
StringGrid3.RowCount:=n; // Y массиві жолдарының саны бекітіледі
end;
procedure TForm1.SpinEdit2Change(Sender: ... m-ге ... ... ішіндегілер
меншіктеледі
StringGrid1.ColCount:=m; // A массиві бағаналарының саны ... // X ... ... саны бекітіледі
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer; // ... ... ... кестедегі мәндерді A массивіне енгізу
for i:=1 to n ... j:=1 to m ... j:=1 to m do // X ... ... және оның ... ... i:=1 to n do // Y ... құрылуы және оның мәндерін кестеге
шығару
begin
Y[i]:=A[i,q];
StringGrid3.Cells[0,i-1]:=FloatToStrF(Y[i],ffFixed,3,1);
end;
end;
end.
4.1.4 Қосымшамен жұмыс
Құрылған қосымшаны орындауға ... A ... ... ... енгізіңіздер және қосымшаның тапсырмаға сәйкес
жұмыс атқаратынын ... ... ... ... ... және DrawGrid компонентерінің ... ... ... ... жеке тапсырма таңдаңыздар.
Қосымша құрыңыздар және оның жұмысын тексеріңіздер.
Жеке тапсырмалар.
1. NxM ... ... А ... ... B массивін алу, ... k – ші ... ... ... 0-дік ... оның k – ші
элементіне 0 мәнін, егер кері жағдай ... ... 1 ... беру.
2. NxM өлшемді бүтін А матрицасы берілген. B массивін алу, ... k–ші ... ... азаю ... ... ... оның ... 1 мәнін, егер кері жағдай болса (k=1,2,…,N) 0 мәнін беру.
3. NxM ... ... А ... ... Матрицаның k-ші элементіне
1 мәнін беру, егер матрицаның k-ші жолы симетриялы болса, және 0 ... егер кері ... ... ... В ... ... NxM ... бүтін матрица берілген. Егер матрицаның элементі өзі
тұрған бағананың ... ... ... ... ... бұл
элементі «ерекше» деп есептеңіз. Осы ... ... ... ... NxM өлшемді бүтін матрица берілген. Егер матрицаның элементінің өзі
тұрған жолдағы оң жақтағы элементтер өзінен ... ал сол ... кіші ... бұл элементті «ерекше» деп есептеңіз. Осы «ерекше»
элементтер k–санын табу керек.
6. NxM өлшемді символдық ... ... ... ... ... табу ... қайталанатын элементтерді бір рет санау
керек).
7. NxM өлшемді заттық матрица берілген. Оның жолдарын 1 –ші элементтері
азаюы емес бойынша ... NxM ... ... ... берілген. Оның жолдарын ... ... ... емес ... ... NxM өлшемді заттық матрица берілген. Оның жолдарын олардың үлкен
элементтерінің азаюы емес ... ... ... ... ... ... ... диогональға байланысты
симетриялы екенін анықтау.
11. Берілген NxM өлшемді бүтін матрицассы үшін ... оның ... ... ... ... ... ... нүктесі деп аталады
егер ол өз жолында ең кіші және өз бағанасында ең ... ... ... өз ... ең ... және өз бағанасында ең кіші болса.
12. n-ретті матрицада, жолдарды, матрицаның диоганалінде абсолютті ... ең ... ... ... қайта орналастыру.
5 Лабораториялық жұмыс « Жолдарды пайдаланумен алгоритмдерді
программалау»
Лабораториялық ... ... ListBox және ... пайдалануын меңгеру және жолдар пайдаланылатын қосымша
құру.
5.1. Қосымша құру мысалы
Тапсырма: Еркін жолда ... ... ... үшін ... ... ... пробелдердің кез-келген санымен бөлінеді. ... ... ... ... ... Қосымшаның жұмысы Close батырмасын басумен
аяқталу керек.
Құрастырып жатырған ... ... ... мүмкін
варианттарының бірі 5.1-суретте көрсетілген
5.1.1. ... ... ... ... кезінде экранға ақпаратты енгізуді және
шығаруды ListBox және ComboBox ... ... ... ... ... ... ... бұнда элементтер пернетақта немесе
“тышқан” көмегімен ... ... ... Items қасиеті арқылы
беріледі, бұның Add, Delete және Insert ... ... ... ... ... үшін ... ... элементтің нөмірін анықтау үшін
ItemIndex қасиеті қолданылады.
ComboBox компоненті ListBox тізімінің және Еdit ... ... ... ... ... осы ... Редакторлау терезесімен жұмыс жасау үшін Edit- тегі тәрізді
Text қасиеті, ал ... ... ... ... үшін ListBox ... тәрізді
Items қасиеті пайдаланылады. Style қасиетімен ... ... ... ... csSimple модификациясында тізім әрқашанда ашық,
қалғандарында ол ... оң ... ... ... ... және ComboBox компоненттері Компоненттер Палитрасының Standard
бетінде орналасқан.
BitBtn компоненті Компоненттер Палитрасының Additional ... және ... Button ... ... ... ... – Glyph ... анықталатын батырманың үстінде расторлық
суреттің бар болуы. Бұдан басқа, 11 стандартты әртүрлі батырмалардың ... ... Kind ... бар. ... ... bkCustom және bkHelp ... ... басу модалды терезені жабады. bkClose батырмасы
негізгі терезені жабады және программа жұмысын ... ... ... ... ... ... моментінде, Интерфейс панелі экранға шыққан кезде
пайдаланушы үшін курсордың ComboBox компонентінің ... ... ... Форманың активтелуі кезінде OnActivate оқиғасы пайда
болады, бұны ComboBox компонентіне енгізу фокусын беру үшін ... Осы ... ... құру үшін ... ... компонентін таңдау қажет, Events бетінде OnActivate оқиғасын тауып
және оның оң ... ... ... екі рет ... керек. Курсор
Форма активтелу оқиғасы ... ... TObject) ... орналасады. Процедураның
осы жерінде ComboBox1 компонентіне фокустың берілу операторын теріңіздер
(қ. 5.1.3 ... UnStr ... ... ... сәйкес Enter пернесін басқан кезде, пайдаланушы редакторлау
терезесінде терген символдар жолы ComboBox ... ... ... ... Осы ... өңдеу-процедурасын құрған кезде Объектілер
Инспекторында ComboBox1 компонентін таңдау ... , Events ... ... ... оның оң жақ ... ... екі ... керек. Курсор пернетақтадан пернелерді басу оқиғасының өңдеуші-
процедурасының :
procedure TForm1.ComboBox1KeyPress(Sender:TObject;var ... ... ... осы жерінде UnStr модуль мәтінін
пайдаланып Enter ... ... ... ... ... ... тізіміне ауыстыратын және ... ... ... ... өрісінде procedure TForm1.ComboBox1Click(Sender: TObject)
“тышқан” пернесін басу ... ... ... ... ... ... OnClick оқиғасы үшін ұқсас орындалады.
UnStr модулінің мәтінін пайдаланып, таңдалған ... ... ... ... ... операторларды теріңіздер.
5.1.3. UnStr модулінің мәтіні
Unit UnStr;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, ... = ... ... ... ... TComboBox;
Label1: TLabel;
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations ... Public ... ... ... *.DFM}
// Форманы активтеу оқиғасын өңдеу
procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus; // ... ... ... Enter ... басу және ... енгізу оқиғасын өңдеу
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then // Enter ... ... ... ... ... // ... тізіміне апарылады
ComboBox1.Text:=''; // ... ... ... ... ... басу ... ... TForm1.ComboBox1Click(Sender: TObject);
var
st : string;
n,i,nst,ind: integer;
begin
n:=0; // n ... ... // ... ... ... ... // st –ға ... жол меншіктеледі
for i:=1 to Length(st) do //жолдың барлық символдарын көру
case ind of
0 : if st[i]' ' then // егер ... ... // ... саны 1-ге ... : if st[i]=' ' then // егер ... ... // Label3-ке сөздердің санын шығару
end;
end.
5.2. Өзіндік тапсырманы орындау
Барлық тапсырмаларда бастапқы берілгендерді ListBox ... ... ... ... ComboBox компонентінің Items қасиетіне
Text қасиеті ... ... ... Label компоненті көмегімен шығару.
Жолды енгізуді Enter пернесін басумен аяқтау. ... ... ... ... ... ... іске асуын тексеру үшін бірнеше тесттерді дайындау.
Жеке тапсырмалар
1. ... және ... ... тұратын жол берілген. Әрбір топ бір-
бірінен бір немесе бірнеше пробелдармен бөлінеді. Бес ... ... ... ... ... және ... ... тұратын жол берілген. Әрбір топ бір-
бірінен бір немесе ... ... ... Ең ... топты табу және
экранға шығару.
3. Нөлдер және бірлер тобынан тұратын жол ... ... топ ... бір ... ... ... ... Ең ұзын топтағы символдар
санын санау.
4. ... және ... ... ... жол ... ... топ ... бір немесе бірнеше пробелдармен бөлінеді. Жұп символдар ... ... табу және ... ... ... ... « Жазбаларды пайдаланумен алгоритмді
программалау»
Лабораториялық жұмыстың мақсаты: жазба түріндегі ... ... ... құру ... 9 ... ... ... үлгірімі туралы ақпарат
тізімді ... үшін ... ... ... жазба фамилиядан,
инициалдарынан, сондай-ақ физиканың, математиканың және ... ... ... Орта ... азаю ... ... сортталған
оқушылардың тізімін шығару.
Құрастырып жатырған қосымшаның интерфейс панелінің мүмкін
варианттарының бірі ... ... ... ... ... ... кезінде экранға ақпаратты енгізу және шығару
StringGrid компонентінің көмегімен жасаған ыңғайлы.
Бұл тапсырмада бағаналардағы және жолдардағы ... ... ... ... ... ... ... пайдаланылады, сондықтан
Объектілер Инспекторындағы FixedCols жәнеFixedRows ... ... ... тең деп ... Тапсырмаға сәйкес ColCount қасиетін 6-ға тең ... ал RowCount ... 10-ға тең деп ... ... ... көру мүмкіндігі үшін StringGrid компонентінде вертикалды ... ... ... ... ScrollBars қасиетін ssVertical
күйіне қойыңыз. +Options қасиетінің опциялар тізімін ашыңыз және ... ... ... – бұл ... ... ақпаратты “тышқан”
және пернетақта көмегімен редакторлау мүмкіндігін береді.
6.1.2 FormCreate және Button1Click оқиғасын өңдеуші процедурасын ... және Button1 ... ... ... екі рет ... ... ... өңдеу процедураларын құрыңыздар. ... ... ... осы ... операторларын мұхият
теріңіздер.
6.1.3 UnZap модулінің мәтіні
Unit UnZap;
interface
uses
Windows, Messages, SysUtils, Classes, ... ... ... Buttons, ... = ... TStringGrid;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private ... ... Public ... ... TForm1;
implementation
{$R *.DFM}
type
zap=record // ... ... ... :extended
end;
var
MZap:array[1..9] of zap; // ... ... ... TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
with StringGrid1 do
begin // ... ... ... инициалдары';
Cells[2,0]:='Математика';
Cells[3,0]:='Физика';
Cells[4,0]:='Шығарма';
Cells[5,0]:='Орт. балл';
for i:=1 to 9 do
Cells[0,i]:=IntToStr(i);
Cells[1,1]:='Бірінші П.П.'; ... ... В.В.'; ... ... Т.Т.'; ... ... Ч.Ч.'; ... Cells[3,4]:='4';
Cells[4,4]:='4';
Cells[1,5]:='БесіншіП.П.'; Cells[2,5]:='3'; Cells[3,5]:='4';
Cells[4,5]:='5';
Cells[1,6]:=АлтыншыШ.Ш.'; Cells[2,6]:='5'; ... ... ... В.В.'; ... Cells[3,8]:='5';
Cells[4,8]:='5';
Cells[1,9]:='Тоғызыншы Д.Д.'; Cells[2,9]:='3'; Cells[3,9]:='5';
Cells[4,9]:='5';
for i:=1 to 9 do
with MZap[i] do
begin // ... ... ... ... // орта балл ... // StringGrid1 соңғы
бағанына
end;
end; ... балл ... ... TForm1.Button1Click(Sender: TObject);
var
i,j :integer;
vper:zap;
begin
for i:=1 to 9 do
with StringGrid1,MZap[i] do
begin
fio:=Cells[1,i];
mat:=StrToInt(Cells[2,i]);
fiz:=StrToInt(Cells[3,i]);
soch:=StrToInt(Cells[4,i]);
srbal:=(mat+fiz+soch)/3;
Cells[5,i]:=FloatToStrF(srbal,ffFixed,5,2);
end;
for i:=2 to 9 do // ... ... ... j:=9 downto i ... MZap[j-1].srbalMZap[j].fio then
begin
vper:=MZap[j-1];
MZap[j-1]:=MZap[j];
MZap[j]:=vper;
end;
for i:=1 to n do // StringGrid1 ұяшықтарын ... ... ... ... ... ... файлын құру}
procedure TForm1.BitBtnNewClick(Sender: TObject);
var
i:integer;
begin // ескерту хабарламасы бар терезені экранға шығару
if MessageDlg('Содержимое ... ... ... ... Вы
уверены?',
mtConfirmation, mbYesNoCancel, 0)=mrYes then
begin
for i:=1 to n do
with StringGrid1,MZap[i] do
begin // ... ... ... ... OpenDialog1 do
begin
Title:='Создание файла'; // диалог терезесінің тақырыбы
if Execute then // файл ... ... ... диалогын
орындау
begin
FileNameZap:=FileName; // файлға ат меншіктеу
AssignFile(FileZap,FileNameZap); // FileZap файлға ... ... // ... жазба үшін ашу
for i:=1 to n do
write(FileZap,MZap[i]); //файлға жазба массивін жазу
CloseFile(FileZap); // ... ... ... ... ... ... TForm1.SpinEdit1Change(Sender: TObject);
var
i,m:integer;
begin
m:=StrToInt(SpinEdit1.Text); // өлшемге жаңа мән меншіктеу
with StringGrid1 do
begin
RowCount:=m+1; // жолдар санын санау
if m>n then // егер ... ... ... ... i:=n+1 to m do // жаңа ... ... // ... жаңа мәнін сақтау
end;
{ Open пернесін басуды өңдеуші }
procedure TForm1.BitBtnOpenClick(Sender: TObject);
var
i:integer;
begin
with OpenDialog1 do
begin
Title:='Открытие файла'; // диалог терезесінің тақырыбы
if Execute then // файл ... ... ... ... // ... атау меншіктеу
AssignFile(FileZap,FileNameZap); // FileZap файлына FileNameZap
атауын беру
ReSet(FileZap); // ... оқу үшін ... // ... ... ... ... ... not EoF(FileZap) do
begin
n:=n+1; // санаушы көбейту
read(FileZap,MZap[n]); // ... ... ... ... оқу
end;
SpinEdit1.Text:=IntToStr(n); // SpinEdit-ке оқылған жазбалардың
санын енгізу
StringGrid1.RowCount:=n+1; // ... ... ... i:=1 to n do
with StringGrid1,MZap[i] do
begin // ... ... ... ... // ... файлын жабу
end;
end;
BitBtnSort.Show; // “Sort” пернесін көрсету
BitBtnSave.Show; ... ... ... мәтіндік файлда сақтау}
procedure TForm1.BitBtnSaveClick(Sender: TObject);
var
i:integer;
begin
with SaveDialog1 do
if Execute then // файл атын ... ... ... ... // файл атын меншіктеу
AssignFile(FileText,FileNameText); // FileText файлына FileNameText
атын беру
ReWrite(FileText); // ... ... ... үшін ашу
for i:=1 to n do
with MZap[i] do ... ... ... // жазба аяқталған соң мәтіндік файлды жабу
end;
BitBtnSort.Hide; // ... ... ... ... ... ... қосымшыаны қосыңыздар. Интерфейс панелінің сәйкес өрістеріне
оқушылардың үлгерімі туралы ақпаратты енгізіңіздер. “New” ... ... ... ... Қосымшаның орындалуын аяқтаңыздар.
Қосымшаны қайтадан қосыңыздар және “Open” пернесі арқылы ... ... ... қате ... ... ... ... жөндуге болады, сонымен қатар тізімді жаңа ... ... ... ... ретте сорттау үшін “Sort” пернесін
пайдаланыңыздар және ... ... ... ... ... ... қайтадан аяқтап қосыңыздар.
“Open” пернесі арқылы файлды ашыңыздар және онда ... ... ... көз ... “Save” пернесі арқылы ақпаратты
мәтіндік файлда сақтаңыздар. Мәтіндік файлдың құрамын көру үшін, ... Word” ... ... ... ... ... ... қосымшаның
барлық алдын ала қарастырылған жұмыс ... ... ... ... Жеке ... ... файлда енгізілетін берілгендердің сақталуын және
бұрын құрылған файлдан оқу ... ... ... ... және мәтіндік файлға шығарыңыздар.
1. Университетке түсу емтихандарын тапсырған ... ... ... талапкерлердің аты-жөні, бағалары. ... орта ... ... және орта ... ... ... ... жоғары талапкерлердің тізімін шығару. Тізімде 1-ші болып емтиханды
5-ке ... ... тұру ... ... ... тапсырылған радиоаппаратуралардың
квитанциялары сақталған. Әр ... ... ... бар: ... радиоқабылдағыш және т.с.с.) ... аты, ... ... ... ... ... дайындық жағдайы (жөнделген,
жөнделмеген). Бұйымдар тобы бойынша ағымды күндерге тапсырыстардың жағдайы
туралы ақпаратты шығару.
3. ... ... ... жақын аптадағы дальнего
следования поездеріндегі бос ... ... ... ... ... сақталған:
шығу күні, пунк назначения, шығу уақыты, бос орындар саны. Халық аралық
конференциялардың ұйымдық комитеті администраторларды ... ші ... ... уақытта қаласына шығатын поездердің орнын ... ... Шығу ... ... ... ... орындау мүмкін емес
туралы хабарлама шығару.
4. Студенттердің оқу үлгерімі туралы ... құру ... ... ... әр жазбасы төмендегілерден тұру керек: топ ... ... ... ... ... Студенттердің тізімін топ
бойынша шығару. әр топта студенттердің аты-жөні орта балының кемуі бойынша
орналасуы керек.
8 Лабораториялық ... ... жӘне ... ... ... ... ... және функциялардан ... құру ... ... және ... ... қолдану.
8.1. Қосымша құру мысалы
Тапсырма: функциясының және оның h=(xk - xn)/10 ... ... үшін xn тен xk ... ... ретінде қатарға орналасу
мәндерінің кестесін шығаратын Windows-қосымшасын ... ... ... ... ... ... ... жасап модуль
құру. Модульді проектіге қосып құрылған қосымшаны орындау.
Құрылатын ... ... ... ... варианттарының бірі
сурет 8.1. –де көрсетілген.
8.1.1. Формада компоненттердің ... Label, Edit, ... Button және Memo ... UnModul ... ... 8.1.4 қ-да ... атымен
сақтайық.
8.1.2.Модульді құру және оны жобаға қосу
Тапсырмаға сәйкес мәнін есептеулерді функция ретінде, ал ... ... ... ... ... құрайық. Модульді құру
үшін негізгі менюде File пунктін ашайық және ... ... ... Delphi New ... ... ашады. Мұнда
Unit(Модуль) пиктограммасын белсенді жасаймыз және OK пернесін басамыз.
«Бос» Unit2 ... ... ... File менюінің Save As… опциясы ... ... ... ... файлдары бар папкада сақтаймыз.
8.1 - сурет
Бұл модульде F функция – подпрограмма түріндегі Y(x) ... және Sum ...... ... S(x)
есептеулерінің операторларын модульдерді құру ережелері бойынша жасайық
(UnFuncProc модулінің мәтіні 8.1.3 п.-де ... ... ... қосу үшін UnModul ... мәтіні бар
терезені белсенді жасау керек, содан кейін File ... Use Unit… ... ... және ... Use Unit ... ... отырған модульдің
атын көрсету керек – UnFuncProc. UnModul модулінің ... Delphi UnModul ... ... ... Uses ... ... болуына көз жеткізіңіз.
Проекттің басты файлын ашыңыздар және ... ... ... ... жоқ ... ... UnFuncProc модулінің мәтіні
unit UnFuncProc;
interface
var
n:integer; // S сомасында қосылғыштар саны
Function ... ... ... ... ... ... k:=1 to n ... UnModul модулінің мәтіні
Unit UnModul;
interface
uses
Windows, Messages, ... Classes, ... ... ... ... Spin, ... = ... TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
SpinEdit1: TSpinEdit;
BitBtn1: ... ... ... ... ... Private ... ... Public declarations }
end;
Type
func=function(x:extended):extended; // функционалды түр
proc=procedure(x:extended;Var s:extended); // ... ... ... ... // Delphi ... модулін қосады
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
SpinEdit1.text:='4'; // N-ң бастапқы мәні
Edit1.text:=’0.1’; // Xn-ң бастапқы мәні
Edit2.text:=’2.0’; // Xk-ң ... ... ... №8 – Модульдерді құру);
end;
{ Tablica процедурасында x, S(x) және Y(x) мәндер кестесі есептеледі
және шығарылады}
procedure ... ... ... // x ... ... // S(x) ... үшін Sum ... // Y(x) ... үшін F ... ... // ... S ... Y шығару
x:=x+h;
until x>xk;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
xn,xk,h:extended;
begin
n:=StrToInt(SpinEdit1.Text);
xn:=StrToFloat(Edit1.Text);
xk:=StrToFloat(Edit2.Text);
h:=(xk-xn)*0.1; // h ... // ... ... үшін Tablica процедурасын
шығару
end;
end.
8.2. Өзіндік тапсырмаларды орындау
Оқытушының нұсқауы бойынша кестеден жеке тапсырмалардың екі вариантын
таңдаңыздар. Модуль құрыңыздар, онда ... ... ... ал есептеулерін функция – қосалқы программа түрінде
жасаңыздар. Интерфейс панеліне ... ... оның ... сәйкес вариантына таңдау мүмкіндігін және ... ... ... ... ... i- ... ... Құрылған
модульді жобаға қосыңыздар және қосымшаны орындаңыздар.
Жеке тапсырмалар
Тапсырмаларда экранға Y(x) функциясының мәндер ... және ... x-тің -нен ... мәндері үшін S(x) қатарына
орналасуының кестесін шығару.
x мәндерінің барлық диопозонында S(x) және Y(x) ... ... және Y(x) ... ... ... |||S(x) |n |Y(x) |
| | | | | | |
|1 |0.1 |1 | |8 | |
| ||| | | |
|2 | | | |18 | |
| ||| | | |
|3 | | | |6 | |
| | | | | | |
|4 |0.1 |0.8 | |12 | |
| | | | | | |
|5 |0.1 |0.8 | |16 | |
| | | | | | |
|6 |0.1 |1 | |14 | |
9 ... ... «Мәліметтердің динамикалық құрылымдарын қолданып
алгоритмдерді программалау»
Лабораториялық жұмыстың мақсаты: мәліметтердің динамикалық құрылымдары
қолданылатын қосымшаларды құрудың әдістемелерін менгеру.
Қосымшаларды құрудың ... ... ... ... A={aij}, мұнда i=1,2,…, m; j=1,2,…, n, бүтін санды матрицаның
элементтерінің барлық ... ... ең ... және ең ... ... ... құру. m және n мәндерін пайдаланушы ... ... ал A ... ... ... сандардың датчигі
көмегімен генерирленеді және жадыда динамикалық орналасады.
Құрылатын қосымшаның ... ... ... ... ... 9.1 ... ... компоненттердің орналасуы
Формада Label, SpinEdit, Button және ... ... UnDinMas ... ... 9.1.3 қ.-да ... ... FormCreate және Button1Click оқиғаларын өңдеуші процедураларын
құру
Формада және Button1 пернесінде «тышқанды» 2 рет ... ... ... ... ... құрыңыздар. UnDinMas, модулінің мәтінін
қолданып бұл процедураның операторларын мұқият теріңіздер.
StringGrid компонентіндегі ең кіші және ең ... ... ... ... ... ... ... процедураны да құруға
болады. Бұндай процедураны құру үшін StringGrid ... ... ... ... ... ... ... оқиғасының
оң жағынан «тышқанмен» екі рет шертіңіз. Delphi бұл ... ... ... T ... ... және ... begin және end операторларының арасында ... ... ... мәтінін ... ... ... ... ... UnDinMas ... мәтіні
Unit UnDinMas;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, Spin, Grids, Buttons;
type
TForm1 = class(TForm)
Label1: ... ... ... TLabel;
StringGrid1: TStringGrid;
Label2: TLabel;
Label5: TLabel;
Label3: TLabel;
Button1: TButton;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
procedure FormCreate(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure ... ... ... TObject; Col, Row: ... TRect; State: TGridDrawState);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Type
Mas=array[1..1] of integer; // бүтін санды мәндердің ... of ^mas; // ... ... // ... ... жариялау
pA:^pMas; ... ... ... ... TObject);
begin
m:=6; // m – нің ... ... // n – нің ... ... ... ... // ... саны
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
m:=StrToInt(SpinEdit1.Text);// m – ге ... ... ... ... ... n– ге редактор өрісінің ... ... ... ... // ... ... ... инициалдау
GetMem(pA,4*m); // m көрсеткіштерінен тұратын массив үшін жадыны
белгілеу
for i :=1 to m do
begin // ... i-ші ... ... i-ші ... n ... үшін ... белгілеу }
GetMem(pA^[i],SizeOf(integer)*n);
pA^[1]^[1]:=Random(1000);// массивке кездейсоқ бүтін санды енгізу
for j:=1 to n ... // ... j – ші ... ... ... // кездейсоқ санды генерирлеу
for k:=1 to i do
for l:=1 to j ... ... then // егер ... бұл сан ... онда ... 1;
pA^[i]^[j]:=r; // кездейсоқ санды массивке енгізу
end;
end;
for i:=1 to m do // ... ... ... ... j:=1 to n do // ... ... массив элементтерінің min және max мәндерін енгізу}
max:=pA^[1]^[1];
min:=max;
for i:=1 to m do
for j:=1 to n do
if pA^[i]^[j]max then
max:=pA^[i]^[j];
Label7.Caption:=IntToStr(min); // min ... ... // max ... ... i:=1 to m do
{ ... i – ші жолдардың n элементтерінен босату}
FreeMem(pA^[i],SizeOf(integer)*n);
{ жадыны i – ші жолдардың m элементтерінен босату }
FreeMem(pA,4*m);
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, ... TRect; State: ... ... ... ... then // егер ... // min – ға ... онда ... // ... ... ... ... // ... шектерін берілген түспен белгілеу
end
else
if StringGrid1.Cells[Col,Row]=IntToStr(max) then //егер ұяшық
элементі
begin // max – ға ... онда ... // ... ... қызыл ету
FrameRect(Rect); // ұяшық шектерін берілген ... ... ... тізімдерді қолдану
Тапсырма 2: бүтін оң сандардың пернелер ... ... ... үшін ... ... 1–ші теріс сан негізілген соң, стектың құрамы
интерфейс панеліне шығарылады, ал жоды оның ... ... ... ... ... ... варианттарының бірі
сурет 9.2.-де көрсетілген.
9.2.1. Формада компоненттердің орналасуы
Формада Label, Edit, Button және Memo компоненттерін орналастырайық.
9-2-
сурет
Модульді UnStek ... ... ... көрсетілген) атымен
сақтаңыздар.
9.2.2 FormCreate және Button1Click оқиғаларын өңдеуші процедураларын
құру
Формада және Button1 пернесінде «тышқанды» екі рет ... ... ... өңдеу процедураларын құрыңыздар. UnStek модулінің мәтінін
қолданып, осы процедуралардың операторларын мұқият теріңіздер.
9.2.3 UnStek ... ... ... ... SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Label2: ... ... ... ... ... FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Type
PSt=^Zap;
Zap=record
inf:integer;
adr:PSt
end;
Var // ... ... ... // стектің басын көрсеткіш
PTek:PSt; // ... ... // стек ... ... ... // ... белгілеу
ElSt:=StrToInt(Edit1.Text);// ElSt – ге Edit1- ден мәнді ... // ... ... ... ElSt ... // адрестік бөлімге басқа көрсеткішті енгізу
PVer:=PTek;// басты көрсеткішті соңғы элементі көрсету керек
if ElSt>=0 then // егер стек ... ... ... ... Edit1 ... ... ... Edit1 редакторына енгізу фокусын беру
end
else
begin
Memo1.Lines.Add('Элементы стека:'); // тақырыпты шығару
repeat
Memo1.Lines.Add(#9+IntToStr(PTek^.inf));// элементтерді
шығару
PVer:=PTek^.adr;
Dispose(PTek); // жадыны босату
PTek:=PVer
until PTek=nil;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
PVer:=nil; // ... ... ... // стека элементін инициалдау
end;
end.
9.3. Жеке тапсырманы орындау
Оқытушының нұсқауы бойынша жеке ... 2 ... ... ... ... ... ... ал №16-№30 – тапсырмаларда
динамикалық тізімдерді ... ... ... тапсырмаларда бастапқы
берілгендерді бақылау шығаруды ескеру керек.
1. Пернелер тақтасынан бір өлшемді ... ... ... ... ... ... жұп мәндер арасында ең ... ең ... ... ... ... және алынған
массивті шығаратын қосымшаны құру.
2. Пернелер тақтасынан 2 өлшемді массивтің m ... және ... ... қамтамасыз ететін және оның элементтерінің
барлық мәндерінің ішіндегі ең кіші ... ... ... ... ... қосымша құру.
3. Пернелер тақтасынан бір өлшемді массивінің элементтерінің k мәндерін
енгізуді ... ... және тақ ... арасындағы ең кіші
элементің реттік нөмірін шығаратын ... ... ... ... n ... екі ... ... элементтерінің
мәндерін енгізуді қамтамасыз ететін және бас ... ең ... ... ... ... құру.
5. Пернелер тақтасынан бір өлшемді массив элементтерінің k мәндерін
енгізу ... ... ... ретін кері ретке
ауыстыратын және алынған массивті шығаратын ... ... ... ... бір ... ... ... k мәндерін
енгізуді қамтамасыз ететін және жұп мәндер арасындағы ... ... ... реттік нөмірін шығаратын қосымша құру.
7. Пернелер тақтасынан n ретті 2 ... ... ... ... ... ... және бас диагональ элементтер
мәндерінің сомасын (қосындысын) ... ... ... ... ... бір өлшемді массив элементтерінің k мәндерін
енгізуді қамтамасыз ететін, максималды және ... ... ... ... және ... ... шығаратын
қосымша құру .
9. Пернелер тақтасынан бір ... ... ... k ... ... ... және оң ... арасындағы ең кіші мәнді
элементтің реттік нөмірін шығаратын қосымша құру.
10. ... ... n ... екі ... массив элементтерінің k
мәндерін енгізуді қамтамасыз ететін, бас диагональ элементтерінің
ретін кері реке ауыстыратын және ... ... ... ... ... тақтасынан бір өлшемді массив элементтерінің k мәндерін
енгізуді қамтамасыз ететін оң ... ... ... ... ... элементтерінің орнын ауыстыратын және ... ... ... ... ... тақтасынан бір өлшемді массив элементтерінің k мәндерін
енгізуді қамтамасыз ететін және теріс мәндер арасындағы ең ... ... ... ... ... ... құру.
13. Пернелер тақтасынан бір өлшемді массив элементтерінің k ... ... ... оң ... ... ең кіші және ... ... ең үлкен мәнді элементтердің орнын ауыстыратын
және алынған массивті шығаратын қосымша құру.
14. Пернелер тақтасынан бір өлшемді ... ... k ... қамтамасыз ететін және ... ... ... мәнін шығаратын қосымша құру.
15. Пернелер тақтасынан бір өлшемді массив элементтерінің k мәндерін
енгізуді қамтамасыз ететін, жұп ... ... ең кіші және ... арасындағы ең үлкен мәнді элементтерінің ... ... ... ... ... ... Пернелер тақтасынан стекке бүтін оң сандарды енгізетін, стектің
құрамын және оның элементтерінің орта ... ... ... ... ... ... стекке символдар енгізетін, стек құрамын және
стекте ... ... бары ... жоғы туралы хабарлама
шығаратын қосымша құру.
18. Пернелер тақтасынан ... әр ... ... ... енгізетін
және “end” сөзі енгізілгенде стек құрамын шығаратын қосымша ... ... ... стекке еркін бүтін сандарды енгізетін стек
құрамын және стекте берілген санның бары және жоғы ... ... ... ... ... ... стекке символдар енгізетін, стек құрамын және
стек элементтері алфавит бойынша ... ... ... ... ... ... ... стекке оң бүтін сандар енгізетін ... ... ... тең сан ... стек ... ... ... ТІЗІМІ
1. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal ... М.: ... - ... 1993,- ... ... А.И., Марченко Л.А. Программирование в среде Турбо Паскаль 7.0.
–М: Бином универсал, к.: Юниор, 1997, - ... ... В.В. ... ... 7.0. ... ... ... пособие. - М.:
Нолидж, 1997, - 616с.
4. Федоров А., Рогаткин Д. Borland Pascal в ... Windows. - ... 1993, - ... Федоров А.Г. Создание Windows –приложений в среде Delphi.- ... ... 1995, - ... ... П.Г., ... Е.П. Delphi – ... ... - СПб.: BNV, 1996, - 352с.
7. Джон Матчо, ... ... Delphi Пер. с ... - М.: ... ... ... С.В. Секреты Delphi на примерах. - М.:Бином, 1996, - 316с.
9. Гусева А.И. Учимся программировать: Pascal 7.0 ... и ... ... – М.: Диалог МИФИ, 1997, - 256с.
10. Стивен Коупстейк. ... Office для Windows ... за ... ... - М.: Бином, 1997, - 208с.
11. Матюшок В.М. Excel 7.0 Общие экономические ... - М.: ... ... Веста, 1993,- 298с.
12. Математическая экономика на персональном компьютере /Под ред. Кубонива.
– М.: 1991. –304 ... ... В.В. ... ... ... – М.: 1990.
14. Шураков В.В. Надежность программного обеспечения систем обработки
данных. – М.: ... и ... ... ... обработка и использование программног обеспечения ЭВМ.:
Учебник, - М.: Финансы и ... 1995, - ...... ... ... ... 2 – негізгі меню, 3 – негізгі меню пиктограммалары,
4 - Объектілер Инспекторы терезесі; 5 – КодРедакторы терезесі
6- бос ... ... 7 ... ... ... Форма түрі
Edit
Button
Label
SpinEdit
3.1-сурет. Форма түрі
4.1 – сурет. Форма түрі
StringGrid2
StringGrid3
StringGrid1
5.1-сурет
ComboBox
Label3
Label1
Label2
BitBtn
6.1-сурет
StringGrid
Memo
Button
Label
Label
SpinEdit
Label
StringGrid
Memо
Label
Edit
Button
BitBtn
CheckBox
RadioGroup
2.1-сурет. Форма ...

Пән: Информатика
Жұмыс түрі: Материал
Көлемі: 54 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Delphi7 объектілі бағытталған программалау ортасы34 бет
Обьектілі - бағытталған программалау негіздері22 бет
Қазіргі замандағы жоғары деңгей тілдері: қысқа мінездеме, негізгі түсініктер. Объектіге бағытталған программалау технологиясы12 бет
WINDOWS’98 операциялық жүйесI18 бет
SQL тілі39 бет
Жалпыланған түрдегі технологиялық операцияларды жобалау мәселелері7 бет
Жылжымайтын мүліктерді бағалау5 бет
Машина мен жабдықтарды бағалау32 бет
Delphi7 обьектілі бағытталған бағдарламалау ортасы17 бет
«Биология. Адам және оның денсаулығы» (8-сынып) пәнін оқытуда жеке тұлғаға бағытталған технологияны пайдалану39 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь