procedure TForm1.Button1Click(Sender: TObject);
var a : array[1..5] of real; // massiv
summ: real; // elementlar summasi
sr: real; // o'rta arifmetik
i: integer; // indeks
begin // Massivni kiritish
// agar katak bo'sh bo'lsa, ushbu katakka mos keluvchi
// massiv elementining qiymatini nolga teng deb hisoblaymiz
for i:= 1 to 5 do if Length(StringGrid1.Cells[i-1,0]) <> 0
then a[i] := StrToFloat(StringGrid1.Cells[i-1,0])
else a[i] := 0;
// massivni qayta ishlash
summ := 0;
for i :=1 to 5 do summ := summ + a[i];
sr := summ / 5;
// Natijani chiqarish
Label2.Caption :=
'Elementlar yig`indisi: ' + FloatToStr(summ) + #13+
'O`rtacha qiymati: ' + FloatToStr(sr);
end;
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin case Key of '0'..'9',#8 : ; // Raqamlar va #13: // if StringGrid1.Col < StringGrid1.ColCount - 1
then StringGrid1.Col := StringGrid1.Col + 1
else
begin if Key <> DecimalSeparator then Key := DecimalSeparator; // ajratuvchi belgini ruhsat
// etilgan belgiga almashtirish
if Pos(DecimalSeparator, StringGrid1.Cells[StringGrid1.Col,0]) <> 0
then Key := Chr(0); // ikkinchi ajratuvchini
// kiritishni ta'qiqlash
end; '-': // minusni birinchi belgi sifatida kiritiladi,
if Length(StringGrid1.Cells[StringGrid1.Col, 0])<>0 then Key := Chr(0) ;
else key := Chr(0); // Qolgan belgilar
end; end; end. Shuningdek, OnkeyPress hodisasini qayta ishlash protsedurasida kasr va manfiy sonlarni kiritish tashkil qilingan. Kasr sonlarni kiritishda sonning kasr qismini ajratuvchi belgi (nuqta yoki vergul) Windows sistemasi sozlanishiga bog’liq bo’ladi. Shuning uchun foydalanuvchi nuqta yoki vergul kiritishidan qat’iy nazar, katakka windowsda belgilangan ajratish belgisi chiqariladi. Buning uchun DecimalSeparator global o’zgaruvchidan foydalanilgan.