program Facility;
{$MODE DELPHI}
uses
SysUtils;
type
TStudent = record
name: string;
group: string;
grade: double;
scholarship: Integer;
end;
var
students: array[1..5] of TStudent;
i: Integer;
// процедура заполнения данными студентов
procedure fillData(var arr: array of TStudent);
begin
arr[0].name := 'Иванов И.И.'; arr[0].group := '28ПИБ'; arr[0].grade := 4.7;
arr[1].name := 'Петров П.П.'; arr[1].group := '27ИТб'; arr[1].grade := 3.8;
arr[2].name := 'Сидоров С.С.'; arr[2].group := '27ГУб'; arr[2].grade := 4.3;
arr[3].name := 'Кузнецов К.К.'; arr[3].group := '28ПИЖб'; arr[3].grade := 4.0;
arr[4].name := 'Васильев В.В.'; arr[4].group := '26УСб'; arr[4].grade := 3.5;
end;
// процедура вывода студентов с баллом выше 4
procedure printHighGradeStudents(const arr: array of TStudent);
var i: Integer;
begin
Writeln('Студенты с баллом выше 4.0:');
for i := Low(arr) to High(arr) do
if arr[i].grade > 4.0 then
Writeln(arr[i].name, ' (группа: ', arr[i].group, ', балл: ', arr[i].grade:0:1, ')');
end;
// процедура вычисления стипендии
procedure calculateScholarships(var arr: array of TStudent);
var i: Integer;
begin
Writeln(#13#10'Список студентов со стипендиями:');
for i := Low(arr) to High(arr) do
begin
if arr[i].grade >= 4.5 then arr[i].scholarship := 3000
else if arr[i].grade >= 4.0 then arr[i].scholarship := 2000
else arr[i].scholarship := 0;
if arr[i].scholarship > 0 then
Writeln(arr[i].name, '(', arr[i].group, '): ', arr[i].scholarship, ' руб.');
end;
end;
// процедура сортировки студентов по среднему баллу (по убыванию)
procedure sortStudent(var arr: array of TStudent);
var
i, j: Integer;
temp: TStudent;
begin
for i := Low(arr) to High(arr) - 1 do
for j := i + 1 to High(arr) do
if arr[i].grade < arr[j].grade then
begin
temp := arr[i]; arr[i] := arr[j]; arr[j] := temp;
end;
Writeln(#13#10'Отсортированный список (по убыванию балла):');
for i := Low(arr) to High(arr) do
Writeln(arr[i].grade:0:1, ' | ', arr[i].name, '(', arr[i].group, ')');
end;
begin
// заполянем
fillData(students);
// выводим студентов с баллом выше 4
printHighGradeStudents(students);
// считаем стипендию
calculateScholarships(students);
// сортируем студентов
sortStudent(students);
Readln;
end.