logo
методичка_1_05_ВНУ

Оператор приєднання

У програмах, пов'язаних з опрацюванням записів, дово­диться зазначати в операторах селектори запису, що є складе­ними іменами. Це приводить до збільшення програм, зайвої їх громіздкості. В мові Паскаль цей недолік усунуто за допомогою оператора приєднання, який забезпечує доступ до компонентів запису так, ніби вони є прості змінні.

Загальний вигляд оператора приєднання такий:

with <ім'я_запису> do

<оператор S>

Застосувавши такий оператор, до компонентів запису всередині оператора S можна звертатися вже тільки за іменем поля, не називаючи імені запису. Наприклад, оператор уведення масиву PZ11 можна записати

for i:=1 to M do

with PZ11[i] do

read(FAM, В1,В2, ВЗ, В4);

Уся програма обчислення середнього бала і сортування масиву записів за спаданням середнього бала матиме вигляд

program sbal;

const M=24;

type STD=record

FAM: string [15];

B1, B2, B3, B4:2..5;

SB: real

end;

var

PZ11: array [1..M] of STD;

Y: STD;

X: real;

i, j, k: integer;

begin

{Введення вхідних даних}

for i:=1 to M do

with PZ11[i] do

readln(FAM, B1, B2, ВЗ, В4);

{Обчислення середнього бала}

for i:=1 to M do

with PZ11 do

SB:=(B1+B2+B3+B4)/4;

{Сортування списку групи студентів}

for i:=1 to M-1 do

begin

k:=i;

X:=PZ11[i].SB;

for j:=i to M do

if PZ11[j].SB>X then

begin

X:=PZ11[D].SB;

k:=j;

end;

Y:=PZ11[k];

PZ11[k]:=PZ11[i];

PZ11[i]:=Y

end;

{Виведення результатів}

for i:=1 to M do

with PZ11[i] do

writeln(FAM, SB)

end.