Главная страница

УМК ВП. казПОС. Пніні Оу программасы syllabus оытушы жнінде мліметтер


Скачать 6.17 Mb.
НазваниеПніні Оу программасы syllabus оытушы жнінде мліметтер
АнкорУМК ВП. казПОС.doc
Дата01.04.2018
Размер6.17 Mb.
Формат файлаdoc
Имя файлаУМК ВП. казПОС.doc
ТипДокументы
#17493
страница8 из 12
1   ...   4   5   6   7   8   9   10   11   12

Procedure TForm1.FormClick(Sender: TObject);

var a, b, с, p : real;

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

// процедура

begin

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

end;

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

a:=4.5; b1 := 5.2;

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

ShowMessage(FloatToStr(p));

end;

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

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

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

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

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

begin

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

end;

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

a :=4.5; b1 :- 5.2;

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

ShowMessage(FloatToSir(p));

end;



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

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

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

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

function fact (k : integer) : integer;

begin

if k>1 then

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

end;

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

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

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

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

Label1.Caption := IntToStr(man);

end;

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

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

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

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

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

Procedure TForm1.Button1Click(Sender: Object);

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

var a : array [1..n] of integer;

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

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

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

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

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

begin

for k := 1 to n1-1 do

begin

m := pos(' ', st);

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

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

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

end;

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

if m>0 then

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

else

result := st;

end;

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

st := '';

for k := 1 to n do

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

ShowMessage(st);

end;

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



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

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

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



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

Программадағы Edit1.Text, k - нақты параметрлер; Result - стандартты айнымалы. Оған функция қайтарып беретін нәтиже меншіктеледі.
Негізгі әдебиеттер: 2[37-56], 12[15-35], 7[17-32]

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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







A

В

С

D

E

F

1

2

Жалақы

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

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

қызмет атауы

Айлық

Саны

Қосындысы

3 4 5 6 7 8

1.D3

1.5.D3

3.D3

1,3.D5

4.D3

1.2.D7

3500

Тазалаушы

Лаборант

Қызметкер

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

Орынбасар

Бастық

=1*ВЗ =1,5*D3

=3*D3

=1,3*D5

=4'D3

= 1,2*D7

5

4

15

3

2

1

=5*D3

=4*D4

=15*D

5

=3*D6

=2*D7

=1*D8

9



















10













Сум­ма =




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



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

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



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

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

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

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

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

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

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

Program MyProgr;

{SAPPTYPE CONSOLE}

Uses

SysUtils;

var x,y : real;

begin

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

y := 3*x+5;

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

readln; end.




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

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


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

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

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

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

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

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

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



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

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

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

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

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

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

х:= 5;

for k := -2 to 2 do

begin

y:=x/k;

ShowMessage(FloatToStr(y));

end;

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

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

try

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

except

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

else

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

end;

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

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

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

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


for x:=-2 to 2 do

begin

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

ShowMessage(y1);

end;

except

on EZeroDivide do

begin

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

Close;

end;

end;

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

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

var F : TextFile;

begin

AssignFile(F, 'Ermek1');

try

Reset(F);

except

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

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

end; end;

Мұнда Reset опараторы бойынша файл ашылады, егер ол жоқ болса, try блогының екінші бөлімі орындалады (файлдар жөніңде төртінші тарауды қараңыз).
Негізгі әдебиеттер: 2[37-56], 12[15-35], 7[17-32]

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

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

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

3. try ... ex­cept операторлары
15-Дәріс. Принтерде басып шығару.

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

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


написать администратору сайта