В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
MrAlexCross
MrAlexCross
20.04.2023 04:11 •  Информатика

Дана строка содержащая любые символы кроме букв. под "словом" будем понимать последовательность символов, ограниченную пробелами или стоящую в конце или начале строки. между словами может быть несколько пробелов. так же пробелы могут быть в конце или начале строки. написать процедуру, которая удалит из строки слова в которых есть цифры и при этом сохранит все пробелы. например строка: "ufd uue8dx 888 dmas 9" будет преобразована в строку: "ufd dmas " использовать заголовок: procedure preobraz(var stroka: string);

Показать ответ
Ответ:
assassin83arsoz7sda
assassin83arsoz7sda
21.08.2020 14:19
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программа не работает, обновите версию!

procedure Preobraz(var Stroka:string);
begin
  var bq:=new Queue<(integer,integer)>;
  foreach var m in Stroka.Matches('\s+') do
    bq.Enqueue((m.Index,m.Length));
  var wq:=new Queue<(integer,string)>;
  foreach var m in Stroka.Matches('\S+') do
    if m.Value.Any(t->t in ['0'..'9']) then wq.Enqueue((m.Index,''))
    else wq.Enqueue((m.Index,m.Value));
  Stroka:='';
  var pbi,pwi:integer;
  while (bq.Count>0) and (wq.Count>0) do begin
    (pbi,pwi):=(bq.Peek[0],wq.Peek[0]);
    if pbi<pwi then begin
      Stroka:=Stroka+bq.Peek[1]*' ';
      bq.Dequeue
      end
    else begin
      Stroka:=Stroka+wq.Peek[1];
      wq.Dequeue
      end
    end;
  while bq.Count>0 do begin
    Stroka:=Stroka+bq.Peek[1]*' ';
    bq.Dequeue
    end;
  while wq.Count>0 do begin
    Stroka:=Stroka+wq.Peek[1];
    wq.Dequeue
    end
end;

begin
  var s:=ReadlnString;
  Preobraz(s);
  s:='<'+s+'>'; // чтобы было видно, как работает
  s.Println
end.

Дана строка содержащая любые символы кроме букв. под словом будем понимать последовательность симв
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота