With <переменная типа запись> do <оператор>;
With M do
begin
nomer:=555;
marka:=‘Запорожец’;
fio:=‘Панчин В.П.’;
adres:=‘ул. Новая 5’
end;
Пример. О каждом студенте известна следующая информация:
· фамилия, инициалы;
· год рождения;
· группа;
· отметка по математике;
· отметка по истории;
· отметка по информатике;
· отметка по ВТ.
Сформировать таблицу, записав в нее всю известную информацию о каждом студенте и его средний балл. Подсчитать средний балл по каждому предмету, вывести на экран таблицу в алфавитном порядке.
Program zapisi;
Uses crt;
Type {Описание записи о каждом студенте}
Tablica=record
Name : string[15];
Group : string[8];
God : word;
Vt, history, inform, math : byte;
Sr_bal : real;
End;
Var
I,j,n : integer;
A : tablica;
Mas : array[1..30] of tablica;
S_vt, s_history, s_inform, s_math : real;
Begin clrscr;
write(‘n=’); readln(n);
for i:=1 to n do
with mas[i] do
begin
writeln(‘i=’,i:4);
writeln(‘FIO’);
readln(name);
writeln(‘group’);
readln(group);
writeln(‘year’);
readln(god);
writeln(‘ otsenki’);
readln(vt,history,inform,math);
sr_bal:=( vt+history+inform+math)/4;
end;
s_vt:=0; s_history:=0; s_inform:=0; s_math:=0;
for i:=1 to n do
begin
s_vt:= s_vt+mas[i].vt;
s_history:= s_history+mas[i].history;
s_inform:= s_inform+mas[i].inform;
s_math:=s_math+mas[i].math;
end;
s_vt:= s_vt/n;
s_history:= s_history/n;
s_inform:= s_inform/n;
s_math:=s_math/n;
for i:=1 to n-1 do
for j:=1 to n-i do
if mas[j].name>mas[j+1].name then
begin
a:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=a;
end;
clrscr;
write(‘ ‘:4,’FIO’,’ ‘:4);
write(‘ ‘:2,’GROUP’,’ ‘:2);
write(‘ ‘:5, ‘OTSENKI’,’ ‘:5);
writeln(‘Sr. Bal’);
for i:=1 to n do
with mas[i] do
begin
write(name:15);
write(‘ ‘,group:8);
write(‘ ‘,god:4);
writeln(‘ ‘,vt:3,’ ‘,history:3,’ ‘,inform:3,’ ‘,math:3, ‘ ‘ ,sr_bal:5:2);
end;
writeln(‘ ‘,’ sr.bal: ‘,’ ‘:17,s_vt:3:1,’ ‘,s_history:3:1,’ ‘,s_inform:3:1, ’ ‘,s_math:3:1);
readkey
end.