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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2012, 21:09   #1
Alex_12Proxy
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 30
По умолчанию Нелегкая задача Delphi.

Заранее прошу меня извинить если что не так...
Суть в общем в том что, нам задали сделать задачу в делфи. А по семейным обстоятельствам я пропустил очень много пар и не догоняю что и как вообще. И вот чтоб закрыть семестр нам он подкинул эту задачу:

Реализовать класс с методами
  1. AddItem Добавляет значение в конец
  2. InsertItem Вставляет значение в заданную позицию
  3. DeleteItem Удаляет элемент списка по индексу
  4. Exchange Меняет местами два элемента
  5. ListAsStr Возвращает список элементов в виде строки через ,



Дополнительно:
  1. GetCount Возвращает количество элементов
  2. Sort Выполняет сортировку списка по возрастанию (любой метод)
  3. RemoveItem Удаляет элементы списка по заданному значению (все)
  4. FindValue Осуществляет поиск заданного значения в списке и возвращает индекс первого попавшегося элемента

Ребят помогите пожалуйста кто может....
Alex_12Proxy вне форума Ответить с цитированием
Старый 14.12.2012, 21:48   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Бери класс, например, TStringList (или другой лист, смотря какие элементы будешь там хранить) и наследуй его. Там практически всё есть. Останется только немного поправить.
Как наследовать классы много примеров (в том числе и на форуме). Почитай литературу и возвращайся с наработками. Удачи!
eoln вне форума Ответить с цитированием
Старый 15.12.2012, 09:42   #3
Alex_12Proxy
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 30
По умолчанию

Ребят ну помогите пожалуйста реализовать это....
Alex_12Proxy вне форума Ответить с цитированием
Старый 15.12.2012, 11:14   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Пример консольного приложения с использованием класса TStringList, по сути только переименованы/перекрыты методы родителя, но что не запрещено, то разрешено
Дополнительное задание также в несколько строк пишется. Так как у родительского класса все эти методы уже организованы.

Только мне кажется, что этот вариант завернут, ибо задача учебная и есть вероятность, что стандартные классы использовать нельзя.
Код:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  SysUtils, Classes;

type
  TMyList = class(TStringList)
    private
      procedure AddItems(s: string);
      procedure InsertItem(Index: integer; s: string);
      //procedure Delete(Index: integer); уже есть у родителя и даже имя совпадает
      procedure Exchange(Index1: integer; Index2: integer);
      function ListAsStr(): string;
  end;

  procedure TMyList.AddItems(s: string);
  begin
    Add(s);
  end;

  procedure TMyList.InsertItem(Index: integer; s: string);
  begin
    Insert(Index, s);
  end;

  procedure TMyList.Exchange(Index1: integer; Index2: integer);
  var
    tmp: string;
  begin
    tmp := Strings[Index1];
    Strings[Index1] := Strings[Index2];
    Strings[Index2] := tmp
  end;

  function TMyList.ListAsStr(): string;
  var
    i: integer;
  begin
    if Count = 0 then begin
      result := '';
      exit
    end else result := Strings[0];
    for i := 1 to Count - 1 do
      result := result + ', ' + Strings[i];
  end;

var
  MyList: TMyList;
begin
  MyList := TMyList.Create;
  //тут пример работы полученного класса
  MyList.AddItems('o');MyList.AddItems('m');MyList.AddItems('M');
  MyList.AddItems('a');MyList.AddItems('r');MyList.AddItems('vol');
  MyList.AddItems('o');MyList.AddItems('R');MyList.AddItems('i');
  MyList.AddItems('d');MyList.AddItems('d');MyList.AddItems('l');
  MyList.AddItems('e');
  writeln(MyList.ListAsStr);
  MyList.InsertItem(0, 'T');
  writeln(MyList.ListAsStr);
  MyList.Exchange(0, 9);MyList.Exchange(1, 4);MyList.Exchange(3, 12);
  MyList.Exchange(6, 10);MyList.Exchange(7, 10);MyList.Exchange(8, 11);
  MyList.Exchange(9, 13);MyList.Exchange(10, 12);MyList.Exchange(11, 12);
  writeln(MyList.ListAsStr);
  MyList.Delete(6);MyList.Delete(5);MyList.Delete(4);MyList.Delete(3);
  writeln(MyList.ListAsStr);
  MyList.Sort;
  writeln(MyList.ListAsStr);
  readln
end.
eoln вне форума Ответить с цитированием
Старый 15.12.2012, 16:30   #5
Alex_12Proxy
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 30
По умолчанию

От души! Дружище ты не представляешь как ты меня выручил!!!! Спасибо!
Alex_12Proxy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi Задача Lexa567 Помощь студентам 3 23.04.2012 23:40
Delphi Задача Lexa567 Помощь студентам 7 23.04.2012 16:12
Задача по Delphi Divine.King Помощь студентам 3 12.01.2012 20:31
Задача по Delphi gremt Помощь студентам 2 06.05.2009 13:30
Задача на Delphi stscolt Помощь студентам 1 05.05.2009 21:54