Обобщенные классы: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: == Ссылки == *Особенности языка: продвинутый уровень *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalAB...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
Демонстрация создания простого обобщенного класса стека на базе динамического массива | |||
<source lang="Delphi">type | |||
Stack<T> = class | |||
private | |||
a: array of T; | |||
last: integer; | |||
public | |||
constructor; | |||
begin | |||
SetLength(a,100); | |||
last := 0; | |||
end; | |||
procedure push(i: T); | |||
begin | |||
a[last] := i; | |||
last += 1; | |||
end; | |||
function pop: T; | |||
begin | |||
last -= 1; | |||
pop := a[last]; | |||
end; | |||
function top: T; | |||
begin | |||
top := a[last-1]; | |||
end; | |||
function empty: boolean; | |||
begin | |||
Result := (last=0); | |||
end; | |||
end; | |||
var s: Stack<integer>; | |||
begin | |||
s := new Stack<integer>; | |||
s.push(7); s.push(2); | |||
s.push(5); s.push(4); | |||
while not s.empty do | |||
write(s.pop,' '); | |||
end. | |||
</source> | |||
== Ссылки == | == Ссылки == | ||
*[[Особенности языка: продвинутый уровень]] | *[[Особенности языка: продвинутый уровень]] | ||
*[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] | *[http://pascalabc.net/ru/bazovyie-osobennosti-yazyika-i-bibliotek.html Сайт PascalABC.NET: Особенности языка] |
Текущая версия от 23:33, 15 января 2010
Демонстрация создания простого обобщенного класса стека на базе динамического массива
type
Stack<T> = class
private
a: array of T;
last: integer;
public
constructor;
begin
SetLength(a,100);
last := 0;
end;
procedure push(i: T);
begin
a[last] := i;
last += 1;
end;
function pop: T;
begin
last -= 1;
pop := a[last];
end;
function top: T;
begin
top := a[last-1];
end;
function empty: boolean;
begin
Result := (last=0);
end;
end;
var s: Stack<integer>;
begin
s := new Stack<integer>;
s.push(7); s.push(2);
s.push(5); s.push(4);
while not s.empty do
write(s.pop,' ');
end.