Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 333

/ вопрос решён /

здравствуйте уважаемые эксперты ...извините если отвлекаю вас от работы , но в данный момент я решаю такую задачу :

Разработать функцию/процедуру проверки упорядоченности числовых элементов списка. Если список неупорядоченный, то заполнить его числами, последовательно уменьшающимися на 1, начиная с заданного числа X, и добавить полученный список в начало исходного, повторяя подобную вставку заранее известное число раз.

алгоритм описал , компилятор ошибок не выдает , программа не виснет но не выдает мне нужного результата.... я прикрепляю архим с этим проектом и часть кода в которомм на мой взгляд содержится ошибка ....в надежде что если вы не исправите то хотя бы покажете где она находиться ...или окажете какую нибудь другую помощь

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1.  
  2.  
  3. unit Unit1;
  4.  
  5. interface
  6.  
  7. uses
  8. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  9. Dialogs, StdCtrls;
  10.  
  11. type
  12. TForm1 = class(TForm)
  13. Label1: TLabel;
  14. Button1: TButton;
  15. Edit1: TEdit;
  16. Button2: TButton;
  17. Edit2: TEdit;
  18. Edit3: TEdit;
  19. procedure Button1Click(Sender: TObject);
  20. procedure Button2Click(Sender: TObject);
  21. private
  22. { Private declarations }
  23. public
  24. { Public declarations }
  25. end;
  26.  
  27. var
  28. Form1: TForm1;
  29. NumItems: integer;
  30. implementation
  31. type
  32. TIntArray = array[1..1000000] of integer;
  33. PIntArray = ^TIntArray;
  34. var
  35. Items: PIntArray;
  36.  
  37.  
  38. {$R *.dfm}
  39.  
  40. procedure TForm1.Button1Click(Sender: TObject);
  41. var
  42. I: Integer;
  43. Txt: String;
  44. begin
  45.  
  46.  
  47. Txt:='';
  48.  
  49.  
  50. for i:=0 to NumItems-1 do
  51. begin
  52.  
  53. Txt:=Txt+IntToStr(Items^[i])+' ';
  54. end;
  55. Label1.Caption:=Txt;
  56.  
  57. end;
  58.  
  59. procedure TForm1.Button2Click(Sender: TObject);
  60. var i,j,k:integer;
  61.  
  62.  
  63.  
  64.  
  65.  
  66. begin
  67. j:=1;
  68. Label1.Caption:='';
  69. kol:=StrToInt(Edit3.Text);
  70. chislo:= StrToInt(edit2.text);
  71. nItems:=(chislo*kol)+NumItems;
  72. GetMem(masIt,nItems*SizeOf(integer));
  73. GetMem(mas,chislo*sizeof(integer));
  74.  
  75. mas^[i]:=i;
  76. for i:=1 to NumItems-1 do
  77. begin
  78. if Items^[i]<=Items[i+1] then
  79.  
  80. Items^[i]:=Items[i+1];
  81. j:=j+1;
  82. end;
  83. end;
  84. if j < NumItems then
  85. begin
  86.  
  87. masIt[i]:=mas[i];
  88.  
  89. for i:=0 to chislo-1 do
  90. masIt[i+(chislo*k)]:=mas[i];
  91.  
  92. masIt[i+(kol*chislo)]:=Items[i];
  93.  
  94. label1.caption:=label1.caption+IntToStr(masIt[i])+' ';
  95. end
  96. else
  97.  
  98.  
  99. end;
  100.  
  101. end.


Ruslan1993 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Ruslan1993 (статус: Посетитель)
Вопрос отправлен: 28 мая 2011, 11:25
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 30 мая 2011, 12:56; участников в обсуждении: 3.
Ruslan1993

Ruslan1993 (статус: Посетитель), 28 мая 2011, 11:43 [#1]:

буду вам признателен за любую помощь
Толяныч

Толяныч (статус: 4-ый класс), 28 мая 2011, 13:34 [#2]:

Повторение - мать мучения ? Дублирование вопроса 5328.
Не отвечают потому, что - я уже не раз это утверждал - преподы задают бессмысленные задания, не имеющие никакого отношения к практическим задачам и не дающие никаких, imho, полезных навыков.
Вот про хруст и грохот ( 5265 ) я решал с удовольствием.
Ruslan1993

Ruslan1993 (статус: Посетитель), 28 мая 2011, 14:10 [#3]:

мне не нужно что бы ее решили за меня ... мне просто хотя бы указать на ошибку ...
Ruslan1993

Ruslan1993 (статус: Посетитель), 28 мая 2011, 14:22 [#4]:

проблема в том чьл я не совсем понимаю как данные из 2 массивов загнать в один .... это единственное что яч не могу осмыслить и именно в этом мне нужна помощь ... я отправил задачу сюдане для того что бы мне типа решили за бесплатно .... а для того что бы помогли вот в этой проблеме
Толяныч

Толяныч (статус: 4-ый класс), 29 мая 2011, 21:43 [#5]:

Ды проще простого: если надо не слить 2 массва в третий ( это вообще пустяк ), а добавить чего-то в один из них, и количество чего-то добавляемого N известно, то надо сначала освободить в массиве-приемнике место, для чего перетащить его на N позиций взад, начиная с конца, а уж пот`ом на освободившееся место влить второй массив.
До каких значений будет уменьшаться второй массив с Х через 1 -- до единицы? или до нуля ? Надо определиться.
Ruslan1993

Ruslan1993 (статус: Посетитель), 30 мая 2011, 11:21 [#6]:

толяныч мне нужно из 2 массивов слить в в 3 массив .... у меня все удачно с первым массивом но когда начинаю добавлять второй происходит запарка такая что последние элементы заменяет на какуюто белеберду например
3 2 1 3 2 1 5 83 6 25794563679367, что то типа этого
Ruslan1993

Ruslan1993 (статус: Посетитель), 30 мая 2011, 11:27 [#7]:

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

Вадим К (статус: Академик), 30 мая 2011, 11:38 [#8]:

Уверенны, что GetMem нужен? я посмотрел на код - он страшен. SetLength не решит Ваших проблем?

Отвечая на ваш вопрос. Если нужно увеличить размер массива, то создаем новый массив нужного размера, потом с старого копируем данные в новый, старый удаляем.
Галочка "подтверждения прочтения" - вселенское зло.
Ruslan1993

Ruslan1993 (статус: Посетитель), 30 мая 2011, 11:46 [#9]:

извините уважаемый толяныч я понял свою ошибку .... у меня бы все заработало сразу же ... просто я забыл разименовать массивы в цикле ... извиняюсь что отнял у вас время .... но все равно огромное спасибо за помощь

30 мая 2011, 11:47: Статус вопроса изменён на решённый (изменил автор вопроса — Ruslan1993)

Толяныч

Толяныч (статус: 4-ый класс), 30 мая 2011, 12:56 [#10]:

Ничего, главное - результат. Успехов !

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:30
Выполнено за 0.02 сек.