Var s : String; n : Integer; Function IncS(a : String) : String; Begin a[Length(a)]:=Chr(Ord(a[Length(a)])+1); If a[Length(a)]>'D' then IncS:=IncS(Copy(a,1,Length(a)-1))+'A' else IncS:=a; end; Function Check(a : String) : Boolean; Begin Check:=False; If (Pos('A',a)>0) then Begin Delete(a,Pos('A',a),1); If (Pos('A',a)>0) then Check:=True; end; end; Begin s:=''; n:=0; While s<>'' do Begin { Writeln(s); } If Check(s) then Inc(n); s:=IncS(s); end; Writeln(n); end.
1. Выразим выражения по правилам языка Pascal:
a) 5 * 2 - 4
Решение:
Умножение имеет более высокий приоритет, чем вычитание. Поэтому, сначала выполним вычисление умножения: 5 * 2 = 10.
Затем, выполним вычитание: 10 - 4 = 6.
Ответ: 6.
б) 7 * х + 2
Решение:
Умножение имеет более высокий приоритет, чем сложение. Поэтому, сначала выполним вычисление умножения: 7 * х = 7х.
Затем, выполним сложение: 7х + 2.
Ответ: 7х + 2.
в) 8 * х - 3 * (х + у)
Решение:
Выполним умножение: 8 * х = 8х и 3 * (х + у) = 3х + 3у.
Затем, выполним вычитание: 8х - (3х + 3у).
Для выполнения операции в скобках, умножение 3 на каждый из элементов внутри скобок:
8х - 3х - 3у = 5х - 3у.
Ответ: 5х - 3у.
г) v^2 * х * у^2 * х * у
Решение:
По правилам алгебры, умножение можно проводить в любом порядке.
Выполним умножение: v^2 * х = v^2х, у^2 * х = у^2х, v^2х * у^2х = (vх * у)^2х.
Ответ: (vх * у)^2х.
2. Переведем запись с языка Pascal в нормальную форму:
f = (3 * x + 4 * y)/(2 * sqr(к) - 4 * t / y)
Решение:
Нормализация выражения подразумевает разделение на более простые составляющие.
Заменим sqr(к) на к^2, чтобы выразить возведение в квадрат в общепринятой форме:
f = (3 * x + 4 * y)/(2 * к^2 - 4 * t / y)
Затем, выполним умножение и деление в числителе и знаменателе:
f = (3 * x + 4 * y)/(2к^2 - (4 * t) / y)
Ответ: f = (3 * x + 4 * y)/(2к^2 - 4t/y).
Таким образом, мы записали выражения по правилам языка Pascal и перевели запись с языка Pascal в нормальную форму.
Var
s : String;
n : Integer;
Function IncS(a : String) : String;
Begin
a[Length(a)]:=Chr(Ord(a[Length(a)])+1);
If a[Length(a)]>'D' then
IncS:=IncS(Copy(a,1,Length(a)-1))+'A'
else IncS:=a;
end;
Function Check(a : String) : Boolean;
Begin
Check:=False;
If (Pos('A',a)>0) then
Begin
Delete(a,Pos('A',a),1);
If (Pos('A',a)>0) then Check:=True;
end;
end;
Begin
s:=''; n:=0;
While s<>'' do
Begin
{ Writeln(s); }
If Check(s) then Inc(n);
s:=IncS(s);
end;
Writeln(n);
end.