Описать класс Spisok, в который входят следующие методы:
Создание пустого списка.
Подсчет количества элементов списка.
Вывод на экран содержимого списка в виде таблицы.
Ну и т. д
Интересует именно теория! Своими словами как можно подробнее.
Другие языки программирования и технологии
Кто может объяснить что такое списки в делфи? Пожалуйста !
1. Связный список - это структура данных, в которой как минимум одно поле указывает на другой список [Updated: На другой элемент, а не список!] (то есть является указателем=адресом в памяти) .
2. Вообще список - набор однотипных элементов, связанных между собой.
3. Что за список в данной задачи утверждать трудно. Если задача "чисто на классы", можно воспользоваться классом Delphi, к примеру TList (кстати, list - англ. - список) [т. е. взять готовую реализацию] . Если задача на классы + динамическую память (суть велосипедизм) , то придется еще связать это со связными списками [реализовать самому] .
Всё зависит целиком и полностью от тараканов, которые были у составителя задачи в голове при такой формулировке.
2. Вообще список - набор однотипных элементов, связанных между собой.
3. Что за список в данной задачи утверждать трудно. Если задача "чисто на классы", можно воспользоваться классом Delphi, к примеру TList (кстати, list - англ. - список) [т. е. взять готовую реализацию] . Если задача на классы + динамическую память (суть велосипедизм) , то придется еще связать это со связными списками [реализовать самому] .
Всё зависит целиком и полностью от тараканов, которые были у составителя задачи в голове при такой формулировке.
Список это цепочка записей (структур) , каждая из которых содержит адрес следующей записи (структуры) - в однонаправленных списках, или адреса следующей и предыдущей - в двунаправленных списках.
Описание класса:
type Spisok = class
S : tSpis;
constructor Create;
function Size : Word;
procedure Out;
procedure Add(N : Integer);
… { ну и ещё что нужно }
end;
Где tSpis — описанный ранее динамический список.
К примеру список целых чисел:
type tSpis = ^rSpis;
rSpis = record
N : Integer;
Next : tSpis;
end;
После описания класса, нужно описать его методы:
constructor Spisok.Create;
begin
S := nil;
end;
function Spisok.Size : Word;
var L : Word; Cur : tSpis;
begin
Cur := S; L := 0;
while Cur <> nil do begin Inc(L); Cur := Cur^.Next; end;
Size := L;
end;
procedure Spisok.Out;
begin
… { здесь нужно описать вывод в нужном тебе виде }
end;
procedure Spisok.Add(N : Integer);
var Cur, Tmp : tSpis;
begin
New(Tmp); Tmp^.N := N; Tmp^.Next := nil;
Cur := S; if Cur = nil then Sp := Tmp else begin while Cur^.Next <> nil do Cur := Cur^.Next; Cur^.Next := Tmp; end;
end;
Далее в программе можешь использовать описанное:
var Sp : Spisok;
…
Sp := Spisok.Create;
Len := Sp.Size; { Значение Len = 0 }
Sp.Add(1);
Sp.Add(2);
Len := Sp.Size; { Значение Len = 2 }
…
type Spisok = class
S : tSpis;
constructor Create;
function Size : Word;
procedure Out;
procedure Add(N : Integer);
… { ну и ещё что нужно }
end;
Где tSpis — описанный ранее динамический список.
К примеру список целых чисел:
type tSpis = ^rSpis;
rSpis = record
N : Integer;
Next : tSpis;
end;
После описания класса, нужно описать его методы:
constructor Spisok.Create;
begin
S := nil;
end;
function Spisok.Size : Word;
var L : Word; Cur : tSpis;
begin
Cur := S; L := 0;
while Cur <> nil do begin Inc(L); Cur := Cur^.Next; end;
Size := L;
end;
procedure Spisok.Out;
begin
… { здесь нужно описать вывод в нужном тебе виде }
end;
procedure Spisok.Add(N : Integer);
var Cur, Tmp : tSpis;
begin
New(Tmp); Tmp^.N := N; Tmp^.Next := nil;
Cur := S; if Cur = nil then Sp := Tmp else begin while Cur^.Next <> nil do Cur := Cur^.Next; Cur^.Next := Tmp; end;
end;
Далее в программе можешь использовать описанное:
var Sp : Spisok;
…
Sp := Spisok.Create;
Len := Sp.Size; { Значение Len = 0 }
Sp.Add(1);
Sp.Add(2);
Len := Sp.Size; { Значение Len = 2 }
…
Ну если "Своими словами" и "как можно подробнее" то в Delphi списки реализованы классом Tlist и его производными например TObjectList
Если надо еще подробнее пиши в агент
Если надо еще подробнее пиши в агент
Да нахрен ты кому тут уперся преподавать тебе здесь задарма теорию !
На то есть учебники и Гугль.
На то есть учебники и Гугль.
Саша Железкин
Ну три слова. Списки это... Мне хватит. В гугле я по крайней мере пять способов реализации нашел что и поставило меня в тупик.
Списки - это что-то вроде массива, но для хранения более разнообразных типов данных и более динамичен.
Пример:
var list:TList;
вывод содержимого:
for i:=0 to List.count-1 do begin
Memo1.lines.add(List);
end;
Т. е. выводится также как и массив.
Добавление данных в список:
List.add(что добавляем (что угодно)) ;
List.clear - очистить список.
Пример удаления данных:
TSHape(List).free;
List:=nil;
List.Pack; - пересортирует список, т. е. удаляет пустые ячейки из строки.
Если чё пиши в Л. С.
Пример:
var list:TList;
вывод содержимого:
for i:=0 to List.count-1 do begin
Memo1.lines.add(List);
end;
Т. е. выводится также как и массив.
Добавление данных в список:
List.add(что добавляем (что угодно)) ;
List.clear - очистить список.
Пример удаления данных:
TSHape(List).free;
List:=nil;
List.Pack; - пересортирует список, т. е. удаляет пустые ячейки из строки.
Если чё пиши в Л. С.
Алексей Кудрявцев
> Списки - это что-то вроде массива
Ага.
А потом, после таких вот "откровений", мы удивляемся почему наши космические корабли вместо того чтобы "бороздить просторы" бездарно и позорно падают в океан)
Ага.
А потом, после таких вот "откровений", мы удивляемся почему наши космические корабли вместо того чтобы "бороздить просторы" бездарно и позорно падают в океан)
Похожие вопросы
- Работа с динамическими списками в Делфи!
- кто может объяснить каждую строчку написанного в с++ ?пожалуйста, а то вообще не понимаю.
- C++ Что делает c_str()? Объясните начинающему программисту понятно и просто, пожалуйста.
- Помогите, пожалуйста, написать программу на делфи с ассемблерными вставками.
- помогите, пожалуйста, c делфи!
- надо решить задачку через делфи и паскаль)))
- Вопрос по делфи
- языки делфи и си
- делфи, объясните чутка пжлста
- Скажите сколько месяцев нужно изучать Делфи что бы написать программу вывода даты, дня недели и года в окно ?