Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby (1).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.58 Mб
Скачать

Зертханалық жұмыс №17

Тақырыбы: Ерекше жағдайларды өңдеу

Техникалық жабдық: Дербес компьютер.

Бағдарламалық жабдық: Windows 98/200/XP, Borland Delphi7.

Мақсаты: Программада Try…,Except…,End… операторын қолдануды үйрену. TstringGrid компонетінің негізгі қасиеттерімен танысу.

Негізгі ұғымдар. 

TstringGrid компонеті ұяшықтарына еркін текстік жолдар орналасқан таблицаны құруға арналған. TstringGrid компонетінің Cells (ACol, ARow)қасиеті (ACol, ARow) (баған номері, жол номері) таблицалық координатты ұяшық мәнін анықтайды.

Ерекшелікті өңдеу үшін Object Pascal-да блокті қорғау механизмі қарастырылған:

Try

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

Except

<ерекшелікті өңдеу>

Else

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

End;

 

1-мысал.

 TstringGrid компонетін қолданып қосымша құру. Қосымшада әр студенттің орта балы есептеледі. Бастапқы информация - әр студенттің бағасы таблицаға енгізіледі. Таблицаның соңғы бағанында есеп шешімі – студенттің орта балы бейнеленеді.

Қосымшада қолданылатын компонеттер таблицада көрсетілген.

Компоенттер

Қасиеттер

Меншіктелетін мән

Form1

Caption

Зертханалық жұмыс

Panel1

Caption

Form1

Panel1

Align

alButton

BitBtn1

Kind

bkClose

StringGrid1

Align

alClient

StringGrid1

ColCount

6

StringGrid1

RowCount

30

StringGrid1

Default ColWidth

100

StringGrid1

Options I qo Editing

true

 Программада StringGrid компонетінің OnSet EditText оқиғасы қолданылады. Бұл оқиға қяшықты (ACol,ARow) редакциялауды аяқтағанда пайда болады. Value параметрінде оқиға енгізу нәтижесін немесе текстті редакциялауды алады.

Программада қолданылған TStringGrid компонетінің Cells (ACol, ARow)қасиеті (ACol, ARow) таблицалық координатты ұяшық мәнін анықтайды. Көңіл аударыңыз, бірінші жолда баған номері, екінші орында дол номері орналасқан. А массиві Cells массивіне қатысты транспорленген.

Const nn=30; mm=5;

// Оқушылардың саны)=300.

// Емтихан саны =5.

Var

Form1:Tform1;n:Integer;

a:array[1…nn,1…mm] of real;

ss:Array[1..nn] of real;

// n-оқушының ағымдағы номері. Оқушылар саны.

// а-бағалар массиві.

// ss- оқушылардың орта балына арналған массив.

Implementation

{$ R*.DFM}

procedure Tform1.StringGrid1SetEditText(Sender:TObject; ACol, ARow:Intejer; Const Value:String);

Var b:real; j:byte;

//b – редакциялау жолының нақты мәні

//j – а матрицасының ағымдағы баған номеріне арналған цикл параметрі

Begin

With StringGrid1 Do

Begin

If Value=’’ Then Exit; //егер ештеңе енгізілмесе, онда процедурадан шығу

// Қорғалған блок басы

try b:=strtofloat(Value)

Except ShowMessage(‘символ дұрыс емес!’); b:=0;

End; // Қорғалған блок саны

// Дұрыс енгізілмеген бағаға реакция

if (b<1) or (b>5) then Begin Cells [ACol, ARow]:=’ ‘; Exit;

Cells[ACol, ARow]:=Value; //Бағаны таблицаға белгілеу

a[arow, ACol]:=b; //Бағаны массивке жазу.

// төменде орта балл есептеледі

ss[aRow]:=0; For j:=1 To 4 do

ss[aRow]:= ss[aRow]+ ss[aRow,j];

ss[aRow]:= ss[aRow]/4;

//Орта балды таблицаның 5-ші бағанында бейнелеу.

Cells[5, aRow]:=FormatFloat(‘##.##’,SS[Arow]);

End; end;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]