Ош1
Материал из Вики проекта PascalABC.NET
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.
