16.12.2019, 07:41 [+3 UTC]
в нашей команде: 4 073 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.79 (12.12.2019)
JS-v.1.35 | CSS-v.3.36

Общие новости:
28.04.2019, 09:13

Форум:
29.11.2019, 17:59

Последний вопрос:
15.12.2019, 13:14
Всего: 151290

Последний ответ:
15.12.2019, 16:37
Всего: 259583

Последняя рассылка:
16.12.2019, 05:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
25.05.2012, 23:58 »
Посетитель - 349343
Спасибо!!! [вопрос № 186179, ответ № 270987]
21.06.2010, 21:10 »
popovaia
Огромное человеческое спасибо! [вопрос № 179163, ответ № 262223]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 724
puporev
Статус: Профессионал
Рейтинг: 463
Gluck
Статус: 10-й класс
Рейтинг: 462

Перейти к консультации №:
 

Консультация онлайн # 174119
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Vlad9240 (Посетитель)
Отправлена: 10.11.2009, 16:28
Поступило ответов: 1

Здравствуйте, уважаемые эксперты у меня такой вопрос. Надо написать метод класса для сортировки сведений по заработной плате, используя метод сортировки простым выбором. Имеется класс для обработки сведений о сотрудниках (Tperson=class) , структура данных типа запись
Sotrud=record
Famil:str;
Dolgn:str;
Zarpl:real;
данные хранятся в диамическом массиве Tdata=array of sotrud; надо написать процедуру
procedure Tperson.Sort_stat(var pp:Tdata);
var x:sotrud;
------ : integer;

заранее спасибо.
----------------------------------
Добавлено из мини-форума:
Сортировка нужна по значению заработной платы.

Последнее редактирование 10.11.2009, 17:10 Вадим Исаев ака sir Henry (Мастер-Эксперт)

Состояние: Консультация закрыта

Ответ # 256498 от Евгений/Genia007/ (Профессионал)

Здравствуйте, Vlad9240.
Вот процедура, которая Вам нужна:

procedure Tperson.Sort_stat(var pp: Tdata; col: integer);
{col - количество записей в массиве}
var
  i, j, min: integer;
  buf, buf1: string;
  buf2: real;
begin
  for i:= 0 to col - 1 do
    begin
      { поиск минимального элемента в части массива}
      min:= i;
      for j:= i + 1 to col - 1 do
        if pp[j].Zarpl < pp[min].Zarpl then
          min:= j;
        { поменяем местами pp[min] и pp[i] }
        buf:= pp[i].Famil;
        buf1:= pp[i].Dolgn;
        buf2:= pp[i].Zarpl;
        pp[i].Famil:= pp[min].Famil;
        pp[i].Dolgn:= pp[min].Dolgn;
        pp[i].Zarpl:= pp[min].Zarpl;
        pp[min].Famil:= buf;
        pp[min].Dolgn:= buf1;
        pp[min].Zarpl:= buf2;
    end;
end;


Консультировал: Евгений/Genia007/ (Профессионал)
Дата отправки: 14.11.2009, 14:50

5
нет комментария
-----
Дата оценки: 16.11.2009, 08:28

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 174119

Вадим Исаев ака sir Henry
Мастер-Эксперт

ID: 425

# 1

= общий = | 10.11.2009, 16:52 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Vlad9240:
А по какому признаку то сортировку надо проводить?

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Vlad9240
Посетитель

ID: 268788

# 2

= общий = | 10.11.2009, 17:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

по возрастанию заработной платы

Евгений/Genia007/
Профессионал

ID: 153662

# 3

= общий = | 11.11.2009, 16:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Посмотрите вот эту процедуру, возможно она Вам подойдёт

procedure Sort_stat(var pp: Tdata; col: integer);
{col - количество записей в массиве}
var
  i, j, min: integer;
  buf, buf1: string;
  buf2: real;
begin
  for i:= 0 to col - 1 do
    begin
      { поиск минимального элемента в части массива}
      min:= i;
      for j:= i + 1 to col - 1 do
        if pp[j].Zarpl < pp[min].Zarpl then
          min:= j;
        { поменяем местами pp[min] и pp[i] }
        buf:= pp[i].Famil;
        buf1:= pp[i].Dolgn;
        buf2:= pp[i].Zarpl;
        pp[i].Famil:= pp[min].Famil;
        pp[i].Dolgn:= pp[min].Dolgn;
        pp[i].Zarpl:= pp[min].Zarpl;
        pp[min].Famil:= buf;
        pp[min].Dolgn:= buf1;
        pp[min].Zarpl:= buf2;
    end;
end;

=====
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14779 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.79 от 12.12.2019
Версия JS: 1.35 | Версия CSS: 3.36