Это так же называется обратной польской записью. Числа, которые встречаются интерпретатору, помещаются в стек. А операции совершаются над числами лежащими в вершине стека. Последовательность будет такая: а - помещается на вершину стека, b - помещается на вершину, а проталкивается вглубь стека. И т.д. После ввода цифры 7 стек будет иметь вид "abc7", где 7 лежит на вершине стека. Затем приходит черед арифметических операций: "+" - берутся два числа, лежащие в вершине стека, складываются, и вместо них на вершину стека ложится их сумма. Теперь стек будет таким: "ab(c+7)". Следующая операция "*" - берутся b и (с+7) и умножаются. Результат помещается на вершину стека. Стек: "а(b*(c+7))". И последнее действие "-" - из a вычитается b*(c+7). В результате выражение будет иметь вид: а - b(c+7).
№1 var o,c,k,n,i,j,a,s:longint;l:array[1..1000]of longint;beginwriteln('введите количство чисел в спискe');readln(n);writeln('введите числа из списка по одному');for i:=1 to n doreadln(l[i]);writeln;writeln('введите число которое нужно вставлять');readln(o);writeln('введите число после которого нужно вставить ' ,o,' в список');readln(k);s:=n;for i:=n downto 1 do if l[i]=k then begins:=s+1;for j:=s downto i+1 dol[j]:=l[j-1];l[i+1]:=o;end;for i:=1 to s do write(l[i],' '); end. №2 var c,k,n,i,j,a:longint;l:array[1..1000]of longint;beginwriteln('введите количство чисел в спискe');readln(n);writeln('введите числа из списка по одному');for i:=1 to n doreadln(l[i]);writeln;writeln('введите номер числа которое нужно удалить из списка');readln(k);for i:=k to n do l[i]:=l[i+1];n:=n-1;for i:=1 to n do write(l[i],' ');end.
а - b(c+7).
var o,c,k,n,i,j,a,s:longint;l:array[1..1000]of longint;beginwriteln('введите количство чисел в спискe');readln(n);writeln('введите числа из списка по одному');for i:=1 to n doreadln(l[i]);writeln;writeln('введите число которое нужно вставлять');readln(o);writeln('введите число после которого нужно вставить ' ,o,' в список');readln(k);s:=n;for i:=n downto 1 do if l[i]=k then begins:=s+1;for j:=s downto i+1 dol[j]:=l[j-1];l[i+1]:=o;end;for i:=1 to s do write(l[i],' ');
end.
№2
var c,k,n,i,j,a:longint;l:array[1..1000]of longint;beginwriteln('введите количство чисел в спискe');readln(n);writeln('введите числа из списка по одному');for i:=1 to n doreadln(l[i]);writeln;writeln('введите номер числа которое нужно удалить из списка');readln(k);for i:=k to n do l[i]:=l[i+1];n:=n-1;for i:=1 to n do write(l[i],' ');end.