• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Написание программы через процедуры и функции

Тетрадь

Новые
Регистрация
16 Ноя 2013
Сообщения
22
Реакции
0
Баллы
0
Написание программы через процедуры и функции

Помогите написать данную программу с помощью подпрограмм
Код:
program pro1;
const n = 100;
type
  girl = record
    id : byte;
    pts : integer;
  end;
var
  a : array[1..n] of girl;
  i, j : byte;
  m : girl;
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;
  for i := 1 to n do
    for j := n downto i do
      if a[i].pts >= a[j].pts then
      begin
        m := a[i];
        a[i] := a[j];
        a[j] := m
      end;
  writeln('финалистки:');
  for i := 1 to 10 do
    writeln((a[i].id):4, a[i].pts:6)
end.
Паскаль
 
Паскаль ABC. Подпрограммы должны быть с параметрами. Надеюсь на вашу помощь
 
Паскаль 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.
 
В конкурсе «Мисс Очаровашка» участвуют 100 девушек. Известен балл, набранный каждой девушкой в ходе первого тура конкурса. Определить десять девушек вышедших во второй тур конкурса. Вот такая задача
 
В конкурсе «Мисс Очаровашка» участвуют 100 девушек. Известен балл, набранный каждой девушкой в ходе первого тура конкурса. Определить десять девушек вышедших во второй тур конкурса. Вот такая задача
Ну правильно, я так и понял, и так моя программа и работает. А Ваша отбирает 10 девушек, набравших наинизшее количество баллов.
С этим ясно, а в остальном - устраивает? Или еще подпрограммы нужны?
 
Назад
Сверху