Нужна вторая часть программы. Вернее сказать, написать программу с помощью очереди, на основе массивов представлена ниже.
Сведения о студентах содержат следующую информацию: фамилия, имя, курс, оценки по предметам (математика, физика, информатика). Создать массив записей (из 6-10 элементов) и заполнить его данными. Найти фамилию и имя студента 2-го курса, который учится хуже остальных.
Решить эту же задачу с использованием очереди (вместо массива).
Программа через массив.
program Student;
type
TPtr = ^TElem;
TElem = record
inf : integer;
link : TPtr;
end;
TMarks=record
Kyrs:byte;
Matematika:byte;
Phys:byte;
Inform:byte;
end;
TStudent=record
SurName:string[30];
Name:string[20];
Marks:Tmarks;
end;
TGroup=array [1..6] of TStudent;
var
group1:TGroup;
i,max,imax:integer;
smark:array [1..6] of integer;
begin
for i:=1 to 6 do
with group1[i] do
begin
Writeln('Введите фамилию');
readln(SurName);
writeln('Введите имя');
readln(Name);
writeln('Введите курс обучения');
readln(Marks.Kyrs);
writeln('Введите оценку по математике');
readln(Marks.Matematika);
writeln('Введите оценку по физике');
readln(Marks.Phys);
writeln('Введите оценку по информатике');
readln(Marks.Inform);
end;
writeln('ФИ Курс Математика Физика Информатика ');
for i:=1 to 6 do
begin
writeln(group1[i].SurName,' ',group1[i].Name,' ',group1[i].Marks.Kyrs,' ',group1[i].Marks.Matematika,' ',group1[i].Marks.Phys,' ',group1[i].Marks.Inform);
end;
for i:=1 to 6 do
begin
smark[i]:=group1[i].Marks.Matematika + group1[i].Marks.Phys + group1[i].Marks.Inform;
end;
max:=smark[1];
imax:=1;
for i:=1 to 6 do
begin
if (group1[i].Marks.Kyrs)=2 then begin
if smark[i]<max then
begin
max:=smark[i];
imax:=i;
end;
end;
end;
writeln('Худший студент 2-го курса ',group1[imax].SurName,' ',group1[imax].Name);
end.