Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 17:39   #1
ДеТкА
Новичок
Джуниор
 
Регистрация: 12.06.2012
Сообщений: 3
По умолчанию Правила пунктуации

По правилам пунктуации пробел может стоять после, а не перед каждым из следующих
знаков: . , ; : ! ? ) ] } …; перед, а не после знаков: ( [ {. Заданный текст проверить на
соблюдение этих правил и при необходимости исправить. Вместо пробела может быть перевод
строки или знак табуляции.
ДеТкА вне форума Ответить с цитированием
Старый 13.06.2012, 15:14   #2
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

как вариант - но нужно тестировать
Код:
Function GetTrueProbel(S:string):string;
var x,l:integer;
    res:boolean;
    begin
       res:=true;
       l:=length(S)-1;
       x:=1;
       while x<l do begin
       
         if (s[x] in [' ',#9,#13,#10]) and (s[x+1] in ['.',',',';',':','!',')',']','}','…']) then begin
          delete(s,x,1);
          x:=x-2;
          end
          else
         if (s[x+1] in [' ',#9,#13,#10]) and (s[x] in ['(','[','{']) then begin
         delete(s,x+1,1);
         x:=x-2;
         end;
         x:=x+1;
       end;
       result:=s;
    end;
    
begin
Writeln('"'+GetTrueProbel('номер ] ( 111;    ;22')+'"');
end.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Старый 22.10.2012, 12:30   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

берем данные из файла


Код:
Function GetTrueProbel(S:string):string;
var x,l:integer;
    res:boolean;
    begin
       res:=true;
       l:=length(S)-1;
       x:=1;
       while x<l do begin

         if (s[x] in [' ',#9,#13,#10]) and (s[x+1] in ['.',',',';',':','!',')',']','}','…'{,' ',#9,#13,#10}]) then begin
          delete(s,x,1);
          x:=x-2;
          end
          else
         if (s[x+1] in [' ',#9,#13,#10]) and (s[x] in ['(','[','{']) then begin
         delete(s,x+1,1);
         x:=x-2;
         end;
         x:=x+1;
       end;
       result:=s;
    end;
var f:Text;
s:string;
begin
assign(f,'c:\is1129-01.in');
reset(f);
readln(f,s);

close(f);
assign(f,'c:\out1129-01.out');
rewrite(f);
Writeln(f,'"'+GetTrueProbel(s));
close(f);
end.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype
denisbrain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести на экран все знаки пунктуации. vampir3001 Помощь студентам 3 29.02.2012 12:28
Замена знаков пунктуации Valyano Microsoft Office Word 11 28.12.2009 03:11
Правила разделов/главные правила Alex Cones О форуме и сайтах клуба 1 30.09.2009 17:49