Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 24.11.2013, 11:42   #1 (permalink)
Тетрадь
Member
 
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Написание программы через процедуры и функции

Помогите написать данную программу с помощью подпрограмм
Код:
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.
Паскаль
Тетрадь вне форума   Ответить с цитированием

Старый 24.11.2013, 11:42
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Обязательно обратите внимание на аналогичные топики

Написание программы через процедуры и функции. Паскаль
Подпрограммы. Процедуры и функции
Паскаль. Процедуры, функции, параметры
Задача на процедуры и функции Delfi

Старый 24.11.2013, 12:02   #2 (permalink)
Тетрадь
Member
 
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Паскаль ABC. Подпрограммы должны быть с параметрами. Надеюсь на вашу помощь
Тетрадь вне форума   Ответить с цитированием
Старый 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 вне форума   Ответить с цитированием
Старый 24.11.2013, 14:35   #4 (permalink)
Тетрадь
Member
 
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

В конкурсе «Мисс Очаровашка» участвуют 100 девушек. Известен балл, набранный каждой девушкой в ходе первого тура конкурса. Определить десять девушек вышедших во второй тур конкурса. Вот такая задача
Тетрадь вне форума   Ответить с цитированием
Старый 24.11.2013, 14:44   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Тетрадь Посмотреть сообщение
В конкурсе «Мисс Очаровашка» участвуют 100 девушек. Известен балл, набранный каждой девушкой в ходе первого тура конкурса. Определить десять девушек вышедших во второй тур конкурса. Вот такая задача
Ну правильно, я так и понял, и так моя программа и работает. А Ваша отбирает 10 девушек, набравших наинизшее количество баллов.
С этим ясно, а в остальном - устраивает? Или еще подпрограммы нужны?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.11.2013, 15:06   #6 (permalink)
Тетрадь
Member
 
Регистрация: 16.11.2013
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, спасибо
Тетрадь вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:17.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.