const
MAX = 20;
var
s:string;
stack:array[1..MAX] of string;
top:integer;
i:byte;
procedure Push(ch:string);
begin
if top>=MAX then WriteLn('Stask full')
else
stack[top]:=ch;
top:=top+1;
end;
function Pop:string;
top:=top-1;
if top<1 then
WriteLn('Stack underflow');
end
else Pop := stack[top];
top:=1;
s:='<asdf<asdf>asdf>';//правильная строка
for i:=1 to length(s) do
if s[i]='<' then Push('<');
if s[i]='>' then
if Pop()<>'<' then WriteLn('Ошибка!');
if top<>1 then WriteLn('Ошибка!');
s:='<asdf<asdfasdf>';//не правильная строка
end.
Объяснение:
1)
first_side = int(input())
second_side = int(input())
def perimeter(first_side, second_side):
perimeter = (2 * first_side) + (2 * second_side)
return print(perimeter)
perimeter(first_side, second_side)
2) не понятно, что значит "иначе увеличьте". сделал так -
if perimeter > 50:
perimeter = perimeter / 2
else:
perimeter = perimeter * 2
const
MAX = 20;
var
s:string;
stack:array[1..MAX] of string;
top:integer;
i:byte;
procedure Push(ch:string);
begin
if top>=MAX then WriteLn('Stask full')
else
begin
stack[top]:=ch;
top:=top+1;
end;
end;
function Pop:string;
begin
top:=top-1;
if top<1 then
begin
WriteLn('Stack underflow');
top:=top+1;
end
else Pop := stack[top];
end;
begin
top:=1;
s:='<asdf<asdf>asdf>';//правильная строка
for i:=1 to length(s) do
begin
if s[i]='<' then Push('<');
if s[i]='>' then
if Pop()<>'<' then WriteLn('Ошибка!');
end;
if top<>1 then WriteLn('Ошибка!');
top:=1;
s:='<asdf<asdfasdf>';//не правильная строка
for i:=1 to length(s) do
begin
if s[i]='<' then Push('<');
if s[i]='>' then
if Pop()<>'<' then WriteLn('Ошибка!');
end;
if top<>1 then WriteLn('Ошибка!');
end.
Объяснение:
1)
first_side = int(input())
second_side = int(input())
def perimeter(first_side, second_side):
perimeter = (2 * first_side) + (2 * second_side)
return print(perimeter)
perimeter(first_side, second_side)
2) не понятно, что значит "иначе увеличьте". сделал так -
first_side = int(input())
second_side = int(input())
def perimeter(first_side, second_side):
perimeter = (2 * first_side) + (2 * second_side)
if perimeter > 50:
perimeter = perimeter / 2
else:
perimeter = perimeter * 2
return print(perimeter)
perimeter(first_side, second_side)