Нужно составить описание к программе(Задание - Составить список, содержащий сведения об n...

0 голосов
74 просмотров

Нужно составить описание к программе(Задание - Составить список, содержащий сведения об n студентах. Для каждого студента должно быть указано:

- фамилия;

- ИНН;

- дата рождения;

- год поступления в университет;

- курс;

- группа;

- оценки текущей сессии по трем предметам.

Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод исходных данных, обработку и вывод на экран информации в соответствии с вариантом задания.

Вывести на экран фамилии трех самых молодых студентов)

program pr5;
const
N = 5;

type
student = Record
fam: String;
inn: string;

Year: integer;

god_p: integer;
kurs: 1..5;
gruppa: string;

b1, b2, b3: 1..5;
End;

var
spisok: Array [1..N] Of student;
FF: Text;
b, a: string;
i, j, k1: Integer;

begin

for i := 1 To N Do
with spisok[i] Do
begin
Writeln('Введите фамилию');Readln(fam);
Writeln('Введите ИНН');Readln(inn);
Writeln('Введите три оценки');Readln(b1, b2, b3);
Writeln('год поступления');Readln(god_p);
Writeln('курс');Readln(kurs);
Writeln('группа');Readln(gruppa);

Writeln('Введите дату рождения(GGGGMMDD)без пробелов и точек всё пишем слитно(19971231)');Readln(Year);


end;

for i := 1 to n - 1 do
for j := 1 to n - i do
if spisok[j].Year > spisok[j + 1].Year
then
begin
k1 := spisok[j].Year;

a := spisok[j].fam;

spisok[j].Year := spisok[j + 1].Year;

spisok[j].fam := spisok[j + 1].fam;

spisok[j + 1].Year := k1;

spisok[j + 1].fam := a
end;
writeln;
for i := 1 to 3 do
begin
write(spisok[i].fam);
writeln;
end;
end.

Информатика (20 баллов) | 74 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
Описывается список с полями согласно заданию
type
     student = Record
     fam: String;
     inn: string;
     Year: integer;
     god_p: integer;
     kurs: 1..5;
     gruppa: string;
b1, b2, b3: 1..5;
End;

Объявляются необходимые переменные и массив с типом записи

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 фамилии самых молодых

for i := 1 to 3 do
begin
write(spisok[i].fam);
writeln;
end;

(1.5k баллов)