Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.10.2014, 14:54
Deman1986 Deman1986 вне форума
Прохожий
 
Регистрация: 03.11.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию проблема с добавлением в список. Delphi7

Форумчане есть классы с их реализацией, появилась проблема не могу реализовать правильно добавление в список. вот код.
Код:
function TRam.AddSegment (const Segment: TSegment; Index: integer): integer;
var
  i,j,tmp: integer; // переменные локальные
begin
FCount:=GetCount+1; // увеличение счётчика
  if High(FRam) <= FCount+1 then setlength (FRam,FCount)
    else setlength(FRam,length(FRam) *2); // проверка возможности расширение массива в 2 раза
  for i:= 0 to FCount do
    if FRam[i].GetNum <> Segment.GetNum then Exit// проверка возможности добавления, если элемент существует выходим из процедуры
for i:=0 to GetCount do
  begin
    j:=i;
      tmp:=FRam[i];
  while (Index > 0) and (Index < GetCount) do begin// поиск места вставки
  for j:=0 downto Index do // внутренний цикл
   begin
   FRam[j+1]:=FRam[j];
       FRam[Index]:=Segment;
        Result:=Index;
          Exit;
            end;
              Result:=-1;
end;
вот что пишет преподаватель:
Ошибки в методе добавления:
- индексация в дин. массивах начинается с 0, что надо учитывать в циклах
- проверка необходимости расширения массива сделана неправильно (кстати, проверка именно НЕОБХОДИМОСТИ, а не ВОЗМОЖНОСТИ!)
- проверка существования элемента реализована неправильно (по заданию уникальность номеров сегментов не требуется)
- поиск места вставки и сдвиг элементов с помощью ВЛОЖЕННЫХ циклов реализованы неправильно - это должны быть ДВА ОТДЕЛЬНЫХ цикла.
Спасибо.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025