1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
(Сам и контр)
Задание 1 Вариант 3 Самостоятельная работа 5 ГДЗ Рабочая тетрадь Босова 11 класс (Информатика)
Босова, Босова, Аквилянов
11 класс
Автор
Босова, Босова, Аквилянов

Задание 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 спортсменов, сортирует их по убыванию результата и выводит итоговую таблицу мест.



Общая оценка
4.2 / 5
Другие учебники
Другие предметы