Показать сообщение отдельно
Старый 28.03.2013, 15:44   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070