Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2014, 15:23   #1
aHristovsky
Пользователь
 
Аватар для aHristovsky
 
Регистрация: 29.04.2014
Сообщений: 28
Вопрос Методы сортировки

Помогите, пожалуйста, с написанием программ.
aHristovsky вне форума Ответить с цитированием
Старый 11.05.2014, 16:08   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А с чем помочь-то?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 11.05.2014, 16:12   #3
aHristovsky
Пользователь
 
Аватар для aHristovsky
 
Регистрация: 29.04.2014
Сообщений: 28
По умолчанию

Нужно написать программы на Паскале.
aHristovsky вне форума Ответить с цитированием
Старый 11.05.2014, 16:38   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

aHristovsky, помочь или написать за вас ?
Если помочь - начинайте, поможем.
Если за вас - в раздел фриланс.
Вы даже не сформулировали точно, что и как именно сделать. Похоже, здесь надо использовать записи (record). Слышали о таких ?
type_Oleg на форуме Ответить с цитированием
Старый 11.05.2014, 17:44   #5
aHristovsky
Пользователь
 
Аватар для aHristovsky
 
Регистрация: 29.04.2014
Сообщений: 28
По умолчанию

Вот есть код с простым включением:
Код:
program sort;
var
  x: array [1..12] of integer;
  l, i, j: integer;
begin
  { Вывод на экран исходного массива X }
  for i := l to 12 do 
  begin
    Write('Введите элемент ' + IntToStr(i) + ': ');
    ReadLn(x[i]);
  end;
  { Вывод на экран исходного массива х }
  for i := 1 to 12 do Write(x[i]:5); 
  WriteLn;
  for i := 2 to 12 do
  begin
    j := i - 1;
    l := x[i];
    while (j > 0) and (l < x[j]) do 
    begin
      {Перестановка x[j] и x[j+l]}
      x[j + 1] := x[j]; 
      j := j - 1; 
    end; 
    x[j + 1] := l
  end;
  { Вывод на экран отсортированного массива}
  for i := 1 to 12 do Write(x[i]:5);
  WriteLn
end.
Есть код выбором по-возрастанию:
Код:
uses crt;
const n=15;
type Tmas=array [1..n]of integer;
procedure Sort(var v:Tmas);
var i,j,nmin,buf:integer;
begin
for i:=1 to n-1 do
 begin
  nmin:=i;
  for j:=i+1 to n do
  if abs(v[j])<abs(v[nmin]) then nmin:=j;
  buf:=v[i];
  v[i]:=v[nmin];
  v[nmin]:=buf;
 end;
end;
var a:Tmas;
    i:integer;
Begin
clrscr;
randomize;
writeln('Исходный масив:');
for i:=1 to n do
 begin
  a[i]:=random(50)-25;
  write(a[i]:4);
 end;
writeln;
writeln;
Sort(a);
writeln('Упорядоченный массив: ');
for i:=1 to n do
write(a[i]:4);
readln
end.
Но всё это нужно изменить под мою задачу..не могу понять как...
aHristovsky вне форума Ответить с цитированием
Старый 11.05.2014, 17:58   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Как вам уже советовали, опишите структуру данных под вашу задачу. Создайте массив записей, а потом видоизменяйте найденное под ваши нужды.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 11.05.2014, 18:04   #7
aHristovsky
Пользователь
 
Аватар для aHristovsky
 
Регистрация: 29.04.2014
Сообщений: 28
По умолчанию

Я не понял... А пример можно?
aHristovsky вне форума Ответить с цитированием
Старый 11.05.2014, 18:06   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Этот пример для простого случая - если б у вас была таблица с одним столбцом, а в нем - целые числа.
Собственно сами алгоритмы сортировки можно взять за основу.
Но вам надо использовать record с 5-ю полями ( элементами).
Только надо определиться с типами полей " дата вызова", " дата посещения ". Это зависит от того, какой Паскаль.
И " сложность ремонта " - это перечислимый тип или тип строка ( string)?

PS Посмотрите примеры на форуме. В поиске - записи Паскаль
type_Oleg на форуме Ответить с цитированием
Старый 11.05.2014, 18:12   #9
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
Const
  N=20;
Type 
  Record=zakaz
    N_zakaza:integer;
    Data_vyzova:string[10];
    Fio:string[128];
    Data_pos:string[10];
    Slozhnost:integer;
  End;
Var
   A:array [1..n] of zakaz;
Что-то типа такого.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 11.05.2014, 18:18   #10
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

ZX Spectrum-128, очепятка, надо наоборот
Код:
Type  zakaz=Record
И даты - string же надо как-то дешифровывать. Может быть, у ТС можно что-то вроде TDateTime ?
type_Oleg на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы сортировки и поиска juliya3 Помощь студентам 1 15.11.2011 00:07
Массивы методы сортировки kop Общие вопросы C/C++ 6 15.06.2011 12:08
Методы сортировки массивов!!! >>arty<< Помощь студентам 2 20.01.2010 18:39
Методы сортировки. Teddy Помощь студентам 1 16.10.2008 19:08