• Написать программу подведения итогов олимпийских игр,программу пользователь должен ввести кол-во медалей разного достоинства заваёваной каждой командой участниц,а программа должна посчитать общее число медалей и соотвествующие число очков,после чего упорядочить список в соответствии с набранным кол-ом очков за золотую 7очков,серебряная 6 очков,бронзовая 5очков.

Ответы 6

  • Существует пять схем сортировки, откуда я знаю, что у вас называют "обычным образом"? Еще раз: надо писать все ограничения в условии сразу, а теперь поздно: задача решена и работает.
    • Автор:

      celina
    • 5 лет назад
    • 0
  • Если что-то иначе надо, то делается новое задание и в его условии все формулируется.
    • Автор:

      beaux
    • 5 лет назад
    • 0
  • хорошо, спасибо и на этом
    • Автор:

      angelfnbn
    • 5 лет назад
    • 0
  • А желание сейчас что-то тут "по-другому" переписать - это всего лишь Ваше "Я был небрежен в формулировках, а чужой труд не ценю".
  • Есть Правила на данном Сервисе и их должны соблюдать ОБЕ стороны.
    • Автор:

      whitney
    • 5 лет назад
    • 0
  • program Olympic;const  nMax = 50; { максимум 50 команд }  cGold = 7;  cSilver = 6;  cBronze = 5;type  cName = string[20];  RC = record    position: byte;    name: cName;    nGold: byte;    nSilver: byte;    nBronze: byte;    cTotal: byte  end;  tM = array[1..nMax, 1..2] of byte;procedure Shell(var a: tM; n: integer);{ Сортировка методом Шелла массива a[1..n, 1..2]  по убыванию значений элементов второго столбца. }var  i, j, step, t1, t2: integer;begin  step := n div 2;  while step > 0 do   begin    for j := n - step downto 1 do     begin      i := j;      while i <= n - step do       begin        if a[i, 2] < a[i + step, 2] then        begin          t1 := a[i, 1]; t2 := a[i, 2];          a[i, 1] := a[i + 1, 1]; a[i, 2] := a[i + 1, 2];          a[i + 1, 1] := t1; a[i + 1, 2] := t2        end;        i := i + step      end    end;    step := step div 2  endend;{ Основная программа }var  f: file of RC;  a: tM;  i, n: byte;  s: cName;  t: RC;begin  { Организуем ввод данных }  Assign(f, 'Olympic.in');  Rewrite(f);  n := 0;  repeat    Writeln('Введите наименование команды или * для окончания ввода');    Readln(s);    if s[1] <> '*' then    begin      n := n + 1;      Write('Количество медалей: золото, серебро, бронза: ');      Readln(t.nGold, t.nSilver, t.nBronze);      t.position := n;      t.name := s;      t.cTotal := t.nGold * cGold + t.nSilver * cSilver + t.nBronze * cBronze;      Write(f, t);      a[n, 1] := t.position; a[n, 2] := t.cTotal    end  until s[1] = '*';  Reset(f);  { Выполняем сортировку заполненного массива a,    определяя положение записей в файле }  Shell(a, n);  { Выводим результаты, используя прямой доступ к файлу }  Writeln('Результаты олимпиады');  for i := 1 to n do  begin    seek(f, a[i, 1] - 1);    Read(f, t);    Writeln(i, ': ', t.name, '(', t.nGold, ' зол, ', t.nSilver, ' сер, ',      t.nBronze, ' бронз), очков- ', t.cTotal)  end;  Close(f);end.Тестовое решение:Введите наименование команды или * для окончания вводаВеселые медузыКоличество медалей: золото, серебро, бронза: 4 6 10Введите наименование команды или * для окончания вводаЮные суркиКоличество медалей: золото, серебро, бронза: 2 0 5Введите наименование команды или * для окончания вводаЧерепашки-ниндзяКоличество медалей: золото, серебро, бронза: 3 7 11Введите наименование команды или * для окончания ввода*Результаты олимпиады1: Черепашки-ниндзя(3 зол, 7 сер, 11 бронз), очков- 1182: Веселые медузы(4 зол, 6 сер, 10 бронз), очков- 1143: Юные сурки(2 зол, 0 сер, 5 бронз), очков- 39
    • Автор:

      gunner98
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years