program ideone;
// Перед вами - WEB-среда разработки PascalABC.NET (версия 1.0, апрель 2011 г.).
// Она основана на современном языке PascalABC.NET, совместимом с Turbo Pascal
// и Delphi Pascal. Программа запускается на сервере, ввод-вывод передается по сети.
// Программу можно опубликовать и ссылаться на нее в Интернете в виде
// http://p...content-available-to-author-only...c.net/WDE/?file=имя_опубликованного_файла.pas
// Зарегистрированные пользователи получают дополнительные возможности:
// долговременное хранение своих программ, возможность работы с папками
var
c,d:integer;
procedure P(x,y:integer);
begin
y:=x+1;
end;
procedure Q(x:integer; var y:integer);
begin
y:=x+1;
end;
// procedure R(var x,y:integer);
// begin
// y:=x+1;
// end;
begin
c:=2; d:=0; P(sqr(c)+c,d); writeln(d);
//c:=2; d:=0; Q(sqr(c)+c,d); writeln(d);
//c:=2; d:=0; R(sqr(c)+c,d); writeln(d);
end.
cHJvZ3JhbSBpZGVvbmU7Ci8vINCf0LXRgNC10LQg0LLQsNC80LggLSBXRUIt0YHRgNC10LTQsCDRgNCw0LfRgNCw0LHQvtGC0LrQuCBQYXNjYWxBQkMuTkVUICjQstC10YDRgdC40Y8gMS4wLCDQsNC/0YDQtdC70YwgMjAxMSDQsy4pLiAKLy8g0J7QvdCwINC+0YHQvdC+0LLQsNC90LAg0L3QsCDRgdC+0LLRgNC10LzQtdC90L3QvtC8INGP0LfRi9C60LUgUGFzY2FsQUJDLk5FVCwg0YHQvtCy0LzQtdGB0YLQuNC80L7QvCDRgSBUdXJibyBQYXNjYWwgCi8vINC4IERlbHBoaSBQYXNjYWwuINCf0YDQvtCz0YDQsNC80LzQsCDQt9Cw0L/Rg9GB0LrQsNC10YLRgdGPINC90LAg0YHQtdGA0LLQtdGA0LUsINCy0LLQvtC0LdCy0YvQstC+0LQg0L/QtdGA0LXQtNCw0LXRgtGB0Y8g0L/QviDRgdC10YLQuC4KLy8g0J/RgNC+0LPRgNCw0LzQvNGDINC80L7QttC90L4g0L7Qv9GD0LHQu9C40LrQvtCy0LDRgtGMINC4INGB0YHRi9C70LDRgtGM0YHRjyDQvdCwINC90LXQtSDQsiDQmNC90YLQtdGA0L3QtdGC0LUg0LIg0LLQuNC00LUKLy8gaHR0cDovL3AuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmMubmV0L1dERS8/ZmlsZT3QuNC80Y9f0L7Qv9GD0LHQu9C40LrQvtCy0LDQvdC90L7Qs9C+X9GE0LDQudC70LAucGFzCi8vINCX0LDRgNC10LPQuNGB0YLRgNC40YDQvtCy0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Lgg0L/QvtC70YPRh9Cw0Y7RgiDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INCy0L7Qt9C80L7QttC90L7RgdGC0Lg6Ci8vINC00L7Qu9Cz0L7QstGA0LXQvNC10L3QvdC+0LUg0YXRgNCw0L3QtdC90LjQtSDRgdCy0L7QuNGFINC/0YDQvtCz0YDQsNC80LwsINCy0L7Qt9C80L7QttC90L7RgdGC0Ywg0YDQsNCx0L7RgtGLINGBINC/0LDQv9C60LDQvNC4IAp2YXIKICBjLGQ6aW50ZWdlcjsKCiAgICBwcm9jZWR1cmUgUCh4LHk6aW50ZWdlcik7CiAgICBiZWdpbgogICAgICAgIHk6PXgrMTsKICAgIGVuZDsKICAgIAogICAgcHJvY2VkdXJlIFEoeDppbnRlZ2VyOyB2YXIgeTppbnRlZ2VyKTsKICAgIGJlZ2luCiAgICAgICAgeTo9eCsxOwogICAgZW5kOwogICAgCi8vICAgIHByb2NlZHVyZSBSKHZhciB4LHk6aW50ZWdlcik7CiAvLyAgIGJlZ2luCiAgLy8gICAgICB5Oj14KzE7CiAgIC8vIGVuZDsKCmJlZ2luCmM6PTI7IGQ6PTA7IFAoc3FyKGMpK2MsZCk7IHdyaXRlbG4oZCk7IAovL2M6PTI7IGQ6PTA7IFEoc3FyKGMpK2MsZCk7IHdyaXRlbG4oZCk7IAovL2M6PTI7IGQ6PTA7IFIoc3FyKGMpK2MsZCk7IHdyaXRlbG4oZCk7ICAgIAplbmQu
dW5pdCBTdGFja1VuaXQ7CgppbnRlcmZhY2UKCnVzZXMKICBXaW5hcGkuV2luZG93cywgV2luYXBpLk1lc3NhZ2VzLCBTeXN0ZW0uU3lzVXRpbHMsIFN5c3RlbS5WYXJpYW50cywgU3lzdGVtLkNsYXNzZXMsIFZjbC5HcmFwaGljcywKICBWY2wuQ29udHJvbHMsIFZjbC5Gb3JtcywgVmNsLkRpYWxvZ3MsIFZjbC5TdGRDdHJsczsKCnR5cGUKICBUU3RhY2tGb3JtID0gY2xhc3MoVEZvcm0pCiAgICBFZGl0RWxlbWVudDogVEVkaXQ7CiAgICBCdG5QdXNoOiBUQnV0dG9uOwogICAgQnRuUG9wOiBUQnV0dG9uOwogICAgQnRuUGVlazogVEJ1dHRvbjsKICAgIE1lbW9TdGFjazogVE1lbW87CiAgICBMYWJlbEluZm86IFRMYWJlbDsKICAgIHByb2NlZHVyZSBGb3JtQ3JlYXRlKFNlbmRlcjogVE9iamVjdCk7CiAgICBwcm9jZWR1cmUgQnRuUHVzaENsaWNrKFNlbmRlcjogVE9iamVjdCk7CiAgICBwcm9jZWR1cmUgQnRuUG9wQ2xpY2soU2VuZGVyOiBUT2JqZWN0KTsKICAgIHByb2NlZHVyZSBCdG5QZWVrQ2xpY2soU2VuZGVyOiBUT2JqZWN0KTsKICAgIHByb2NlZHVyZSBGb3JtRGVzdHJveShTZW5kZXI6IFRPYmplY3QpOwogIHByaXZhdGUKICAgIHsgUHJpdmF0ZSBkZWNsYXJhdGlvbnMgfQogICAgU3RhY2s6IGFycmF5IG9mIEludGVnZXI7CiAgICBwcm9jZWR1cmUgVXBkYXRlU3RhY2tWaWV3OwogIHB1YmxpYwogICAgeyBQdWJsaWMgZGVjbGFyYXRpb25zIH0KICBlbmQ7Cgp2YXIKICBTdGFja0Zvcm06IFRTdGFja0Zvcm07CgppbXBsZW1lbnRhdGlvbgoKeyRSICouZGZtfQoKcHJvY2VkdXJlIFRTdGFja0Zvcm0uRm9ybUNyZWF0ZShTZW5kZXI6IFRPYmplY3QpOwpiZWdpbgogIFNldExlbmd0aChTdGFjaywgMCk7CiAgVXBkYXRlU3RhY2tWaWV3OwplbmQ7Cgpwcm9jZWR1cmUgVFN0YWNrRm9ybS5Gb3JtRGVzdHJveShTZW5kZXI6IFRPYmplY3QpOwpiZWdpbgogIFNldExlbmd0aChTdGFjaywgMCk7CmVuZDsKCnByb2NlZHVyZSBUU3RhY2tGb3JtLkJ0blB1c2hDbGljayhTZW5kZXI6IFRPYmplY3QpOwp2YXIKICBFbGVtZW50OiBJbnRlZ2VyOwpiZWdpbgogIGlmIFRyeVN0clRvSW50KEVkaXRFbGVtZW50LlRleHQsIEVsZW1lbnQpIHRoZW4KICBiZWdpbgogICAgU2V0TGVuZ3RoKFN0YWNrLCBMZW5ndGgoU3RhY2spICsgMSk7CiAgICBTdGFja1tIaWdoKFN0YWNrKV0gOj0gRWxlbWVudDsKICAgIFVwZGF0ZVN0YWNrVmlldzsKICAgIExhYmVsSW5mby5DYXB0aW9uIDo9ICfQrdC70LXQvNC10L3RgiAnICsgSW50VG9TdHIoRWxlbWVudCkgKyAnINC00L7QsdCw0LLQu9C10L0g0LIg0YHRgtC10LonOwogIGVuZAogIGVsc2UKICAgIExhYmVsSW5mby5DYXB0aW9uIDo9ICfQktCy0LXQtNC40YLQtSDRhtC10LvQvtC1INGH0LjRgdC70L4nOwplbmQ7Cgpwcm9jZWR1cmUgVFN0YWNrRm9ybS5CdG5Qb3BDbGljayhTZW5kZXI6IFRPYmplY3QpOwp2YXIKICBFbGVtZW50OiBJbnRlZ2VyOwpiZWdpbgogIGlmIExlbmd0aChTdGFjaykgPSAwIHRoZW4KICBiZWdpbgogICAgTGFiZWxJbmZvLkNhcHRpb24gOj0gJ9Ch0YLQtdC6INC/0YPRgdGCJzsKICAgIEV4aXQ7CiAgZW5kOwoKICBFbGVtZW50IDo9IFN0YWNrW0hpZ2goU3RhY2spXTsKICBTZXRMZW5ndGgoU3RhY2ssIExlbmd0aChTdGFjaykgLSAxKTsKICBVcGRhdGVTdGFja1ZpZXc7CiAgTGFiZWxJbmZvLkNhcHRpb24gOj0gJ9Ct0LvQtdC80LXQvdGCICcgKyBJbnRUb1N0cihFbGVtZW50KSArICcg0YPQtNCw0LvQtdC9INC40Lcg0YHRgtC10LrQsCc7CmVuZDsKCnByb2NlZHVyZSBUU3RhY2tGb3JtLkJ0blBlZWtDbGljayhTZW5kZXI6IFRPYmplY3QpOwpiZWdpbgogIGlmIExlbmd0aChTdGFjaykgPSAwIHRoZW4KICAgIExhYmVsSW5mby5DYXB0aW9uIDo9ICfQodGC0LXQuiDQv9GD0YHRgicKICBlbHNlCiAgICBMYWJlbEluZm8uQ2FwdGlvbiA6PSAn0JLQtdGA0YXQvdC40Lkg0Y3Qu9C10LzQtdC90YI6ICcgKyBJbnRUb1N0cihTdGFja1tIaWdoKFN0YWNrKV0pOwplbmQ7Cgpwcm9jZWR1cmUgVFN0YWNrRm9ybS5VcGRhdGVTdGFja1ZpZXc7CnZhcgogIEk6IEludGVnZXI7CmJlZ2luCiAgTWVtb1N0YWNrLkNsZWFyOwogIAogIGlmIExlbmd0aChTdGFjaykgPSAwIHRoZW4KICBiZWdpbgogICAgTWVtb1N0YWNrLkxpbmVzLkFkZCgn0KHRgtC10Log0L/Rg9GB0YInKTsKICAgIEV4aXQ7CiAgZW5kOwoKICBNZW1vU3RhY2suTGluZXMuQWRkKCfQktC10YDRiNC40L3QsCDRgdGC0LXQutCwJyk7CiAgTWVtb1N0YWNrLkxpbmVzLkFkZCgnLS0tLS0tLS0tLS0tJyk7CiAgCiAgZm9yIEkgOj0gSGlnaChTdGFjaykgZG93bnRvIExvdyhTdGFjaykgZG8KICAgIE1lbW9TdGFjay5MaW5lcy5BZGQoSW50VG9TdHIoU3RhY2tbSV0pKTsKCiAgTWVtb1N0YWNrLkxpbmVzLkFkZCgnLS0tLS0tLS0tLS0tJyk7CiAgTWVtb1N0YWNrLkxpbmVzLkFkZCgn0J7RgdC90L7QstCw0L3QuNC1INGB0YLQtdC60LAnKTsKZW5kOwoKZW5kLgo=
unit StackUnit;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TStackForm = class(TForm)
EditElement: TEdit;
BtnPush: TButton;
BtnPop: TButton;
BtnPeek: TButton;
MemoStack: TMemo;
LabelInfo: TLabel;
procedure FormCreate(Sender: TObject);
procedure BtnPushClick(Sender: TObject);
procedure BtnPopClick(Sender: TObject);
procedure BtnPeekClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
Stack: array of Integer;
procedure UpdateStackView;
public
{ Public declarations }
end;
var
StackForm: TStackForm;
implementation
{$R *.dfm}
procedure TStackForm.FormCreate(Sender: TObject);
begin
SetLength(Stack, 0);
UpdateStackView;
end;
procedure TStackForm.FormDestroy(Sender: TObject);
begin
SetLength(Stack, 0);
end;
procedure TStackForm.BtnPushClick(Sender: TObject);
var
Element: Integer;
begin
if TryStrToInt(EditElement.Text, Element) then
begin
SetLength(Stack, Length(Stack) + 1);
Stack[High(Stack)] := Element;
UpdateStackView;
LabelInfo.Caption := 'Элемент ' + IntToStr(Element) + ' добавлен в стек';
end
else
LabelInfo.Caption := 'Введите целое число';
end;
procedure TStackForm.BtnPopClick(Sender: TObject);
var
Element: Integer;
begin
if Length(Stack) = 0 then
begin
LabelInfo.Caption := 'Стек пуст';
Exit;
end;
Element := Stack[High(Stack)];
SetLength(Stack, Length(Stack) - 1);
UpdateStackView;
LabelInfo.Caption := 'Элемент ' + IntToStr(Element) + ' удален из стека';
end;
procedure TStackForm.BtnPeekClick(Sender: TObject);
begin
if Length(Stack) = 0 then
LabelInfo.Caption := 'Стек пуст'
else
LabelInfo.Caption := 'Верхний элемент: ' + IntToStr(Stack[High(Stack)]);
end;
procedure TStackForm.UpdateStackView;
var
I: Integer;
begin
MemoStack.Clear;
if Length(Stack) = 0 then
begin
MemoStack.Lines.Add('Стек пуст');
Exit;
end;
MemoStack.Lines.Add('Вершина стека');
MemoStack.Lines.Add('------------');
for I := High(Stack) downto Low(Stack) do
MemoStack.Lines.Add(IntToStr(Stack[I]));
MemoStack.Lines.Add('------------');
MemoStack.Lines.Add('Основание стека');
end;
end.