<span>Описывается список с полями согласно заданию
type
student = Record
fam: String;
inn: string;
Year: integer;
god_p: integer;
kurs: 1..5;
gruppa: string;
b1, b2, b3: 1..5;
End;
Объявляются необходимые переменные и массив с типом записи</span>
<span>var
spisok: Array [1..N] Of student;
b, a: string;
i, j, k1: Integer;
И заполняется от 1 до N (N=5 установлена константа)
for i := 1 To N Do // идем от 1 до N и заполняем список
with spisok[i] Do
begin
Writeln('Введите фамилию');Readln(fam);
{......}
end;
Потом обрабатывается согласно заданию по вариантам
Скорее всего, что-то типо сортировки по году рождения, самых молодых пихают в начало.(глупо. можно было не городить такой кусок кода, а уместить все в один цикл с проверкой и выводом ИМХО)
Затем выводится 3 фамилии самых молодых
</span>
<span>for i := 1 to 3 do
begin
write(spisok[i].fam);
writeln;
end;</span>
Блок-схема - в прилагаемом файле.
Программу Вам написали правильно:
var
i, p: integer;
begin
p := 1;
for i := 4 to 7 do p := p * i;
writeln('P = ', p);
end.
Результат:
P = 840