Цитата:
Сообщение от blazelott
Помогите пожалуйста.
|
Пожалуйста, вроде отладил, и вычитание добавил. Одно пожелание: в программировании бездумные операции противопоказаны. Вот, например: не используете Вы CRT-команды - так и незачем этот модуль цеплять.
Код:
const
number = ['0' .. '9'];
plus = ['+','-'];
var
value, rezult, i, err : integer;
s, a : string;
sign:Char;
b:boolean;
begin
writeln('Enter the string: ');
readln(s);
b:= true;
i:=1;
a:='';
sign:='0';
while i<=length(s) do
begin
while (i<=length(s)) and not(s[i] in plus) do
begin
if s[i] in number then
begin
b:=false;
a:=a+s[i];
end;
i:=i+1;
end;
val(a,value,err);
Case sign of
'0': rezult:=value;
'+': rezult:=rezult+value;
'-': rezult:=rezult-value;
end;
a:='';
if s[i] in plus then sign:=s[i];
i:=i+1;
end;
if b then writeln('String contains no figures') else writeln('result = ', rezult);
readln
end.