Задание 1 Вариант 3 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
1. Напишите программу. В соревнованиях по прыжкам в высоту принимали участие 10 спортсменов. Считая заданным список фамилий спортсменов и их результатов в порядке стартовых номеров, получите и выведите итоговую таблицу, в которой содержатся фамилии и результаты спортсменов в порядке занятых ими мест. Запишите текст программы.
При составлении программы используется комбинированный тип данных – запись (record).
program s5_v3_1;
const
n = 10;
type
uch = record
fam: string;//Фамилия участника
rez: real;//результат
end;
var
a: array[1..n] of uch;
i, j: integer;
c: uch;
begin
//заполнение данных
for i := 1 to n do
begin
write(‘fam > ‘);
readln(a[i].fam);
write(‘ rez=’);
readln(a[i].rez)
end;
//сортировка «пузырьком» по Убыванию поля «результат»
for i := 1 to n — 1 do
for j := 1 to n — i do
if a[j].rez < a[j + 1].rez then
begin//перестановка всей записи
c := a[j];
a[j] := a[j + 1];
a[j + 1] := c
end;
for i := 1 to n do
writeln(i:3, a[i].fam:10, a[i].rez:10);
end.
Для хранения фамилии и результата каждого спортсмена удобно использовать запись record. Сначала вводим данные в массив записей, затем сортируем массив по убыванию результата методом «пузырька». После сортировки выводим итоговую таблицу в порядке занятых мест.
program s5_v3_1;
const
n = 10;
type
uch = record
fam: string; {фамилия участника}
rez: real; {результат}
end;
var
a: array[1..n] of uch;
i, j: integer;
c: uch;
begin
{заполнение данных}
for i := 1 to n do
begin
write(‘fam > ‘);
readln(a[i].fam);
write(‘rez = ‘);
readln(a[i].rez);
end;{сортировка по убыванию результата}
for i := 1 to n — 1 do
for j := 1 to n — i do
if a[j].rez < a[j + 1].rez then
begin
c := a[j];
a[j] := a[j + 1];
a[j + 1] := c;
end;{вывод итоговой таблицы}
for i := 1 to n do
writeln(i:3, a[i].fam:10, a[i].rez:10);
end.
Ответ
Программа вводит фамилии и результаты 10 спортсменов, сортирует их по убыванию результата и выводит итоговую таблицу мест.