Ош1: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) (Новая: <source lang="Delphi">type StackException=class(Exception) end; Node = class private Data: integer; Next: Node; constructor Create(aData: integer; aNext: Node); ...) |
Mikst (обсуждение | вклад) Нет описания правки |
||
Строка 77: | Строка 77: | ||
write('ошибка: '); | write('ошибка: '); | ||
//end; | //end; | ||
end.</source> | |||
<source lang="Delphi">uses | |||
ThorLists, System.Collections.Generic; | |||
function max(xs: List<integer>): integer; | |||
begin | |||
var m := xs.Item[0]; | |||
var _list_1 := xs; | |||
for var _counter_ := 0 to _list_1.Count - 1 do | |||
begin | |||
var x := _list_1.Item[_counter_]; | |||
if x > m then begin | |||
m := x; | |||
end; | |||
_list_1.Item[_counter_] := x; | |||
end; | |||
result := m; exit; | |||
end; | |||
begin | |||
var x := CreateList(1, 2, 6, -234, 43, 33, 4, 6, 10); | |||
var b := GenerateRange(-20, -15); | |||
var c := Slice(1, 4, x); | |||
writeln(max(x)); | |||
writeln(b.Item[3]); | |||
writeln(max(c)); | |||
var _list_0 := c; | |||
for var _counter_ := 0 to _list_0.Count - 1 do | |||
begin | |||
var t := _list_0.Item[_counter_]; | |||
writeln(t); | |||
_list_0.Item[_counter_] := t; | |||
end; | |||
end.</source> | end.</source> |
Текущая версия от 11:09, 23 июня 2011
type
StackException=class(Exception)
end;
Node = class
private
Data: integer;
Next: Node;
constructor Create(aData: integer; aNext: Node);
begin
Data := aData;
Next := aNext;
end;
end;
IntStack = class
private
top: Node;
public
procedure Push(d: integer);virtual;
begin
top := new Node(d, top);
end;
function Pop: integer; virtual;
begin
result := top.Data;
top := top.Next;
end;
function Peek: integer; virtual;
begin
if top=nil then raise new StackException('Peek:обращение к пустому стеку');
result := top.Data;
end;
procedure Clear; virtual;
begin
top := nil;
end;
function ToString: string; override;
var
t: Node;
begin
result := '';
t := top;
while t <> nil do
begin
result := result + IntToStr(t.Data) + '-';
t := t.Next;
end;
result := result + 'nil';
end;
end;
var
s: IntStack;
i: integer;
begin
s := new IntStack;
writeln(s);
for i := 1 to 5 do
begin
s.Push(random(100));
writeln(s);
end;
writeln(s.Pop);
writeln(s);
// try
s.Clear;
// i:=StrToInt('abc');
s.Peek;
// except
// on e:stackexception do
write('ошибка: ');
//end;
end.
uses
ThorLists, System.Collections.Generic;
function max(xs: List<integer>): integer;
begin
var m := xs.Item[0];
var _list_1 := xs;
for var _counter_ := 0 to _list_1.Count - 1 do
begin
var x := _list_1.Item[_counter_];
if x > m then begin
m := x;
end;
_list_1.Item[_counter_] := x;
end;
result := m; exit;
end;
begin
var x := CreateList(1, 2, 6, -234, 43, 33, 4, 6, 10);
var b := GenerateRange(-20, -15);
var c := Slice(1, 4, x);
writeln(max(x));
writeln(b.Item[3]);
writeln(max(c));
var _list_0 := c;
for var _counter_ := 0 to _list_0.Count - 1 do
begin
var t := _list_0.Item[_counter_];
writeln(t);
_list_0.Item[_counter_] := t;
end;
end.