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



бет5/35
Дата25.08.2017
өлшемі8,61 Mb.
#27256
1   2   3   4   5   6   7   8   9   ...   35
2 - сурет Калькулятор терезесі

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


    1. While P do

Begin

S

End;



    1. Repeat

S

Until (not P);



    1. For k:=k0 to kn do

Begin

S

End;



мұндағы Р – шарт; do - орындау, until – дейін (do, until - кілттік cөздер); S -цикл денесі;k - есептегіш (цикл параметрі); k0,kn - есептегіштің бастапқы, соңғы мәндері.

Мысалы, жалпы мүшесі ak=1/k2 (k=1,2…)тізбектің алғшқы бес мүшесінің қосындысын табу керек (n=5; Sn - ?).

Procedure Tform1.FormCreat(Sender: TOject);

Var s,a:real; k,n:integer; s1:string;

Begin

n:=StrToInt(‘’,’Мүшелер саны=’,’’));



s:=0; k:=0;

For k:=1 to n do

Begin

a:=FloatToStrF(s,ffFixed,7,3); ShowMessage(s1);



End;

  1. Жиындармен (массивтермен) жұмыс

Жиын (массив) – бір типті нысандар (объектілер) жиыны. Жиындар (массивтер) бір өлшемді (сызықтық), екі өлшемді (матрица) не көп өлшемді болуы мүмкін. Жиындарды сипатту Турбо Пакальдағы сияқты. Мысалы:

var


a:array[1..10] of integer; //бүтін сандар жиыны

b:array[3..8] of real; //нақтысандар жиыны

c:array[0..5] of string; //жолдық типті жиыны

Мартица – екі өлшемді жиын. Матрицаны сипаттаудың сызықтық жиынды сипаттаудан айырмавшылығы шамалы. Мысалы:

var

аa:array[1..10,1..10] of integer; //бүтін сандар матрицасы



bb:array[1..8,1..5] of real; //нақтысандар матрицасы

cc:array[0..5,0..3] of string; //жолдық типті матрицасы



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

12,69 13,25 12,98

14,05 13,16 13,08

13,32 14,27 14,02

1-кесте 1-топ 2-топ 3-топ

  1. Жаңа жоба ашып, формада Memo1, StringGrid1, BitBtn1, BitBtn2, Label1 компоненттерін орнату (4-сурет).

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

Қасиет

Мағынасы

Cells[n,n]
ColCount

RowCount


GrigLineWidth

Fixedcos


FixedRows

FixedColor


ColWidth[i]

RowHeight[j]



n*m өлшемді кесте ұяшықтарының мәндері

Кестенің баған саны

Кестенің жол саны

Кесте сызылатын сызықтың қалыңдығы

Ерекше жолдар саны

Ерекше бағандар саны

Ерекше жолдар мен бағандар түсі

i-бағанның ені

j-жодың биіктігі

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



  1. Код терезесінде батырмасын оқиғасын өңдеуіш процедурасын құру.

Компонент

Қасиет

Мән

BitBtn1

BitBtn2


StringGrid1
Label1

Memo1


Kind

Kind


FxedCols

FxedRows


Caption

Strigns


bkOK

bkClose


1

1

бос ету



бос ету

Procedure Tform1.BitBtn1click(Sender: TObject);

Const n=3;

Var nomer,k,I,j:longint;

S:array[1..n,1..n] of real; //матрица
P:array[1..n] of real; //қосындылар жиыны

Min:real; nomerT:string;

Begin

{кесте құру}



StringGrid1.Font,Name:=’Times Kaz’;

StringGrid1.ColCount:=n+1;

StringGrid1.RowHeight:=n+2;

StringGrid1.Cells[0,n+1]:= ‘Орт.жылд.’;

For I:=1 to n do

Begin


P[i]:=0; //қосыенды жиынға бастапқы мәндер меншіктеу

StringGrid1.Colwidth[i]:=60;

StringGrid1.Cells[0,i]:=’ ‘+FloatToStr(i);

StringGrid1.RowHeight[i]:=15;

StringGrid1.Cells[I,0]:=’’+FloatToStr(i)+’топ’;

End;


{енгізілген элменттерді мартица ретіндек құу және экранға шығару}

k:=0;


for I:=1 to n do

for j:=1 to n do

begin s[i,j]:=StrToFloat(memo1.Lines[k]);

StringGrid1.Cells[I,j]:=’ ’+Memo1.Lines[k]; k:=k+1;

End;

{топ студентетрінің орташа жылдамдықтарын анықтау}



for I:=1 to n do

begin for j:=1 to n do

p[j]:=p[j]+s[j,i];

end;


for I:=1 to n do

StringGrid1.Cells[I,n+1]:=’ ‘FloatToStrF(p[i]/n,ffGeneral,4,2);

{бірінші орынға қай топ шыққанын анықтау}

min:=p[1];

nomer:=1;

for I:=111 to n do

if p[i]

begin min:=p[i];

nomer:=I;

end;


nomerT:=IntToStr(nomer);

Label1.Font.Size:=10;

Label1.Caption:=’1 – орынға’ +nomerT+ ‘топ шыққан’+#13+#13+’Орташа жылдамдығы:’’+FloatToStrF(min/nffGeneral,4,2);

End;


Жобаны сақтап, іске қосу. Форма көрінеді. Memo1 терезесіне топтар көрсеткіштерін кезекпен енгізіп, ОК батырмасын шерту. Нәтиже алынады(4-сурет).



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   35




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

    Басты бет