Қоршаған ортаны модельдеуде сапалы мүмкіндіктерге ие, сезімдік тұрғыдан түсініктіұғымдар жиынтығы негізінде құрылады, алдын ала жазылып қойған программа кодын көп рет қолдануға мүкіндік береді


Тапсырманы орындауға әдістемелік нұсқаулар



бет31/35
Дата25.08.2017
өлшемі8,61 Mb.
#27256
1   ...   27   28   29   30   31   32   33   34   35

Тапсырманы орындауға әдістемелік нұсқаулар:

Тапсырма №1.Ол үшін Delphi-дің 6-нұсқасында комплекс сандар мен амалдар орындайтын пайдаланушының варианты қарастырылады. Комплекс сандар арифметикасы төрт функция арқылы орындалады:

Unit Cmplx;



Interface

Type


Complex=record

Re,im:real

End;

Function Add(x,y:Complex):Complex;



Function SubC(x,y:Complex):Complex;

Function MulC(x,y:Complex):Complex;

Function DivC(x,y:Complex):Complex;

Const C: Complex=(re:0,1; im:-1);



Implementation

Function Add(x,y:Complex):Complex;

// Комплекс сандарды қосу

begin


Result.re:=x.re+y.re;

Result.im:=x.im+y.im

End;//AddC

Function SubC(x,y:Complex):Complex;

// Комплекс сандарды азайту

begin


Result.re:=x.re-y.re;

Result.im:=x.im-y.im

End;//SubC

Function MulC(x,y:Complex):Complex;

// Комплекс сандарды көбейту

begin


Result.re:=x.re*y.re-x.im*y.im;

Result.im:=x.re*y.im-x/im*y.re

End;// MulC

Function DivC(x,y:Complex):Complex;

// Комплекс сандарды бөлу

var z:real;

begin

Z:=sqr(y.re)+sqr(y.im);



// Z=0 болған жағдайдағы программаның қорғалуы

try


Result.re:=(x.re*y.re+x.im*y.im)/z;

Result.im:=(x.re*y.im-x,im*y.re)/z;

Exept

Result.re:=1,1e309;



Result.im:=1,1e309;

End//DivC

End.

Мұндай модуль құру үшін File-New-Unit опциясын шақыру қажет. Модуль мәтіні cmplx.pas файлында сақталынады: файл аты модуль атымен сәйкес келуі тиіс. Тек сонда ғана Delphi модульді автоматты түрде тауып, оны жаңартады.



Модуль құрғаннан кейін Uses сөйлемінде жаңадан құрылған қосалқы программалар, типтер, тұрақтылар да пайдаланылатын атауды ескерту қажет (біздің модульде complex типі, AddC, SubC, MulC, DivC қосалқы программалары және C тұрақтысы пайдаланылады). Оқу программасының bbRun батырмасын әрбір басқан сайын төрт арифметикалық амал орындалатын екі кездейсоқ комплекс сан құрылады. Оның bbRunClick оқиға өңдеуші төмендегідей болады:

Implementation

Usescmplx;

Procedure Tform1.BbRunClick(Sender:TObject);

var x,y,z:complex;

Procedure Output(Operation:Char);

var S:String;

Begin Case Operation of

'+':z:=AddC(x,y);

'-':z:=SubC(x,y);

'*':z:=MulC(x,y);

'/':z:=DivC(x,y);

end;


S:='('+FormatFloat('+0,0000;-0,0000',x.re)+' FormatFloat('+0,0000j;-0,0000j',x.im)+')'+ Operation+'('+ FormatFloat('+0,0000;-0,0000',y.re)+' FormatFloat('+0,0000j;-0,0000j',y.im)+'='+FormatFloat('+0,0000;-0,0000',z.re)+ FormatFloat('+0,0000j;-0,0000j'x.im);

MmOutput.Lines.Add(S);

End;//Output

begin//BbRunClick

x.re:=random;

x.im:=random;

x.re:=random;

x.im:=random;

Output('+');

Output('-');

Output('*');

Output('/');

MmOutput.Lines.Add(' ');

End;


Орындалатын бөліктің басындағы Uses cmplx сілтемесі cmplx модулінің объектілерін bbRunClick оқиға өңдеуші мүмкін жасайды. Delphi ортасында бұл сілтемені File-Use-Unit опциясын таңдап, пайда болған терезеден cmplx модулінің атын белгілеу арқылы қоюға болады.
Тапсырма №2. Алдымен құрылатын қосымшаның интерфейсін жасау үшін формаға: Label1, Label2, Label3, Edit1, Edit2, SpinEdit1, Button1, Memo1, Button2 компоненттерін орналастырайық. Қосымшаның орындалу нәтижесі 7.2- суретте келтірілген.

Есеп шартына сәйкес, У(Х)-тің мәнін есептеуді функция түрінде, ал S(X)-тің мәнін есептеу процедура түрінде жүзеге асыратын модуль құрайық. Модуль құру үшін бас менюден файл-құру-модуль (Файл-Создать-Модуль)

командаларын орындаймыз. Нәтижесінде бос Unit2 модулі бар терезе ашылады. Содан кейін жоба файлдары сақталған папкаға модульді «UnFuncProc» деген атпен сақтаймыз. Модульдің мәтіні төмендегідей:

unit UnFuncProc;

interface

var n:integer;

Function F(x:extended):extended;

Procedure Sum(x:extended; Var s:extended);

implementation

Function F(x:extended):extended;

begin

F:=(1-x*x*0,5)*cos(x)-0,5*x*sin(x);



end;

Procedure Sum(x:extended; Var s:extended);

var c: extended;

k:integer;

begin

c:=-x*x*0,5;



s:=1;

for k:=1 to n do

begin

s:=s+c*(2*k*k+1);



c:=c*x*x/((2*k+2));

end; end;

end.

«UnFuncProc» модулін жобаға қосу үшін файл-модульді пайдалану командаларын орындаймыз. Нәтижесінде модульді пайдалану сұхбат терезесі ашылады. Бұл терезеде модульдер тізімі орналасады. Біздің жағдайда бір ғана «UnFuncProc» модулі бар, Ок батырмасын басамыз. Одан кейін негізгі Unit1 модуліндегі implementation бөлімінде Uses UnFuncProc операторының орналасқанына көз жеткізуіміз қажет (мұны Delphi өзі автоматты түрде қояды).



Жобаның негізгі файлының мәтіні төмендегідей:

unit ;


interface

Uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialofs, Spin;

type


Tform1=class(Tform)

Label1: Tlabel;

Label2: Tlabel;

Label3: Tlabel;

Edit1:TEdit;

Edit2:TEdit;

SpinEdit1:TSpinEdin;

Button1:TButton;

Memo1:TMemo;

Button2:TButton;

Procedure FormCreate(Sender:TObject);

Procedure Button1Click(Sender:TObject);

Procedure Button2Click(Sender:TObject);

private {private declarations}

public {publicdeclarations }

end;


Type

func=Function(x:extended):extended;

proc=Procedure(x:extended; Var s:extended)

var


Form:TForm1;

implementation

uses UnFuncProc; {$R*.dfm}

Procedure Tform1FormCreate(Sender:TObject);

begin

SpinEdit1.text:='4';



Edit1.text:='5';

Edit2.text:='6';

Memo1.Clear;

Memo1.Lines.Add('Модуль құру');

end;

procedure Tabl(Sum:proc;F:func;n:integer;Xn,Xk,h:extended);



var x,y,s:extended;

begin


Form1.Memo1Lines.Add(#9+'x'+#9+'y');

x:=Xn;


repeat

Sum(x,s);

y:=F(x);

Form1.Memo1Lines.Add(#9+FloatToStrF(x,ffFixed,5,2)+#9+ FloatToStrF(s,ffFixed,6,3)+#9+ FloatToStrF(y,ffFixed,6,3));

x:=x+h;

until x>Xk;



end;

Procedure TForm1Button1Create(Sender:TObject);

var Xn,Xk,h:extended;

begin


n:=StrToInt(SpinEdit1.Text);

Xn:=StrToFloat(Edit1.Text);

Xk:=StrToFloat(Edit2.Text);

h:=(Xk-Xn)*0,5;

Tabl(Sum,F,n,Xn,Xk,h); end;

Procedure TForm1Button2Create(Sender:TObject);



begin

close;


end; end.




Достарыңызбен бөлісу:
1   ...   27   28   29   30   31   32   33   34   35




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет