|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.04.2008, 09:57 | #11 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
Queue: array[1..10] of InfoClass Для указания первого и последнего элемента в этом массиве нужны номера элементов т.е. First, Last : integer; см. pu4koff пост #3. Да и у вас было integer. А потом почему-то поменялось. Count по желанию. Это легко вычисляется из First/Last Даже так. Если вы введете count, то нужно будет согласованное изменение Count/First/Last. Это дополнительные и не нужные трудности в реализации. Последний раз редактировалось alexBlack; 11.04.2008 в 10:01. |
|
11.04.2008, 11:50 | #12 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Только тут нужно бы Next и Prev.
I'm learning to live...
|
|
11.04.2008, 13:09 | #13 | |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
Цитата:
Queue: array[1..10] of InfoClass иначе зачем он там объявлен. А для хранения головы и хвоста очереди в этом массиве используем First/Last. Может и препод так-же понял. 2Римма. Не пора уже приступить к реализации ? |
|
11.04.2008, 13:33 | #14 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Дык, это я бы (чесслово) взял бы уже готовую реализацию например того же TStringList и просто подмарафетил бы его под себя. Врядли препод будет в кишки вникать.
I'm learning to live...
|
11.04.2008, 15:02 | #15 |
Пользователь
Регистрация: 06.12.2006
Сообщений: 31
|
Большое спасибо что ответили на мой вапрос.Надеюсь что в этой недели закончу наверное АЛЛА БИРСА.
|
15.04.2008, 10:57 | #16 |
Пользователь
Регистрация: 06.12.2006
Сообщений: 31
|
??????????????
Добрый день люди добрые. Я по вашему совету приступила к реализации и сразу же у меня опять возникла вопросик. Я в начале попробую реализовать статический очередь как специализированного контейнера для хранения информационных объектов. Я сделала два модуля один для описание класса а вторая для работы с формой. Модуль первый так же оставила:
unit Unit4;//// Модуль для описание классов interface const size=5; type InfoClass = class // Информационный класс Private // закрытые переменные члены Name : String[2]; // инфо поле Public Constructor Create(aName : string); // конструктор Procedure SetName(aName : string); // методы доступа Function GetName:string; end; QueueClass = class // Класс очереди private Queue: array[1..size] of InfoClass; Count : integer;// число элементов в очереди First : integer; Last : integer; public Constructor CreateA();// конструктор вызывается при создании элемента списка Function GetFirst: integer; Function GetCount: integer; Procedure SetCount(aCount : integer); Procedure AddItem(aName : string); // процедура добавления элемента Procedure SetFirst(aFirst : integer); // устанав.первый эл-т очереди Function GetLast: integer; // берём последний элемент //Function DeleteItem:InfoClass; // процедура удаления Procedure SetLast(aLast : integer); // устанавл. последний элемент end; var d:QueueClass; implementation uses Unit3; // ОПИСАНИЕ МЕТОДОВ ИНФОРМАЦИОННОГО КЛАССА. ///////////////////////////////////////////////////////////////////////////////// Constructor InfoClass.Create(aName:string); Begin Name := aName; end; Procedure InfoClass.SetName(aName : string); Begin Name := aName; end; Function InfoClass.GetName:string; Begin result:=Name; End; // ОПИСАНИЕ КЛАССА КОНТЕЙНЕР - ОЧЕРЕДИ /////////////////////////////////////////////////////////////////////// Constructor QueueClass.CreateA(); Begin Count:=0; First:=1; Last:=1; End; Function QueueClass.GetFirst: integer; Begin result:=First; End; Function QueueClass.GetCount: integer; Begin result:=Count; End; Procedure QueueClass.SetCount(aCount : integer); Begin Count:=aCount; End; Procedure QueueClass.SetFirst(aFirst : integer); Begin First:=aFirst; End; Function QueueClass.GetLast: integer; Begin result:=Last; End; Procedure QueueClass.SetLast(aLast : integer); Begin Last:=aLast; End; Procedure QueueClass.AddItem(aName : string); var temp: InfoClass; Begin if Count < Size then begin Queue[last]:=temp; last:=last+1; if last>size then last:=1; Count:=Count+1; end End; end. В форму добавила кнопку «Создать очередь» и «Показать очередь» и StringGrid1. procedure TForm3.FormCreate(Sender: TObject); begin d:=QueueClass.CreateA(); end; procedure TForm3.Button1Click(Sender: TObject); // код Кнопки «Создать очередь» begin d.AddItem(Form3.Edit1.Text); end; А вот код для кнопки «Показать очередь» не получается писать. А сама я хочу писать такой код, который после нажатие на эту кнопку созданный очередь(Массив) вставит в ячейку StringGrid1. Вы не подскажите как это сделать? Или у меня где то ошибка? |
15.04.2008, 11:32 | #17 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Никуся, тебе б сюда еще добавить ченить типа GetNextItem,
Дабы в цикле можно было пройтись по очереди.
I'm learning to live...
|