Есть стек чисел (условно) бесконечной глубины.
Операция (сложение, вычитание, умножение, деление и т. д.) выполняется над элементом(ами) в самом верху стека. Результат отправляется обратно в стек.
Это дает возможность выполнять сложные вычисления с учетом правил приоритета операторов, т. к. можно хранить результаты предыдущих вычислений в стеке.
Например, (5 + 1) * (6 - 2) запишется так:
5 1 + (сейчас в стеке по адресу 0 лежит 6) 6 2 - (сейчас в стеке по адресу -1 лежит 6, а по адресу 0 лежит 4) * (сейчас в стеке по адресу 0 лежит 24).
Стек:
Адрес Число
0 24
-1 -
-2 -
... -
Program gt;
var n,i,a:integer;
begin
read(N);
a:=n div 4;
for i:=1 to a do
begin
if((n-i*4)mod 2=0)then writeln((n-i*4),' лап гусей и ',i*4,' лап заёцев');
end;
<span>end.</span>
Вот :
var y,x:integer;
begin
writeln('Введите x');
read(x);
y:=x*x;
writeln;
write('Значение функции равно: ');
write(y);
end.
1 кувшином 3 л наливать воду в кувшин 8л. Наполнив большой кувшин, в маленьком останется 1л
2 вылить все из большого кувшина, перелить туда 1л из маленького и налить еще два маленьких кувшина в большой