Другие языки программирования и технологии

Помогите Написать Програму вычесляющие орефметические вырожения аналогично калькулятору В pascal!

( что я ввел 2+2) и выдал 4) Ghjie
readln(a);
readln(b);
c:=a+b;
writeln(c);
Удаленный Профайл
Удаленный Профайл
652
Лучший ответ
uses crt;
function Calculate(SMyExpression: string; digits: Byte): string;

var
z: Char;
ipos: Integer;

function StrToReal(chaine: string): Real;
var
r: Real;
Pos: Integer;
begin
Val(chaine, r, Pos);
if Pos > 0 then Val(Copy(chaine, 1, Pos - 1), r, Pos);
StrToReal := r;
end;

function RealToStr(inreal: real; digits: Byte): string;
var
S: string;
begin
Str(inreal: 0: digits, S);
realToStr := S;
end;

procedure NextChar;
var
s: string;
begin
if ipos > Length(SMyExpression) then
begin
z := #9;
Exit;
end
else
begin
s := Copy(SMyExpression, ipos, 1);
z := s[1];
Inc(ipos);
end;
if z = ' ' then nextchar;
end;

function Expression: Real;
var
w: Real;

function Factor: Real;
var
ws: string;
begin
Nextchar;
if z in ['0'..'9'] then
begin
ws := '';
repeat
ws := ws + z;
nextchar
until not (z in ['0'..'9', '.']);
Factor := StrToReal(ws);
end
else if z = '(' then
begin
Factor := Expression;
nextchar
end
else if z = '+' then Factor := +Factor
else if Z = '-' then Factor := -Factor;
end;

function Term: Real;
var
W: Real;
begin
W := Factor;
while Z in ['*', '/'] do
if z = '*' then w := w * Factor
else
w := w / Factor;
Term := w;
end;
begin
w := term;
while z in ['+', '-'] do
if z = '+' then w := w + term
else
w := w - term;
Expression := w;
end;
begin
ipos := 1;
Calculate := RealToStr(Expression, digits);
end;
var s,s1:string;
begin
clrscr;
writeln('Vvedite vyrazenye:');
readln(s);
s1:=Calculate(s, 3);
write(s1);
readln
end.
$$$ Михаил $$$
$$$ Михаил $$$
41 962
pascal им уже непользуются зачем тебе это ретро
С такими вопросами думаешь сможешь написать прогу? я уже сомневаюсь чувак
Илдар Асейнов
Илдар Асейнов
2 056