Показать сообщение отдельно
Старый 24.11.2013, 14:19   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Тетрадь Посмотреть сообщение
Паскаль ABC. Подпрограммы должны быть с параметрами. Надеюсь на вашу помощь
Поскольку Вы не написали, что именно требуется засунуть в подпрограммы, я это сделал по своему усмотрению, введя процедуру упорядочения массива записей по полю pts примененным Вами методом сортировки выбором. Между прочим, похоже, у Вас ошибка: вместо того, чтобы упорядочить массив по убыванию, Вы упорядочили его по возрастанию, в результате чего финалистками у Вас оказались девушки, набравшие наименьшее число этих самых pts. Или так и задумано? Но я в программе знак неравенства изменил на противоположный.
Код:
program pro1;
const n = 100;
type
  girl = record
    id : byte;
    pts : integer;
  end;
  mas=array[1..n] of girl;
var
  a : mas;
  i : byte;

Procedure Order(G_in:mas; var G_out:mas);
var
 G:mas;
 m:girl;
 q,p:byte;
begin
  G:=G_in;
  for q := 1 to n-1 do
    for p := n downto q do
      if G[q].pts < G[p].pts then
      begin
        m := G[q];
        G[q] := G[p];
        G[p] := m
      end;
  G_out:=G;
end;

begin
  writeln('Участницы:');
  randomize;
  for i := 1 to n do
  begin
    a[i].id := i;
    a[i].pts := 1000 + random(1000);
    writeln((a[i].id):4, a[i].pts:6)
  end;
  Order(a,a);
  writeln('финалистки:');
  for i := 1 to 10 do
    writeln((a[i].id):4, a[i].pts:6)
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070