PascalABC. Вставить после каждого слова исходной строки, заканчивающегося ** букву «о»,...

0 голосов
79 просмотров

PascalABC. Вставить после каждого слова исходной строки, заканчивающегося на букву «о», слово «Ого». Уже видел решение этой задачи, но там программа выполнялась только когда после символа "о" стоял пробел. Т.е. когда слово с "о" на конце было последним и нужно было нажать enter для окончания ввода, программа не выполнялась, требовался пробел. Если хотите что-либо уточнить, задайте вопрос, но только по делу


Информатика (68 баллов) | 79 просмотров
0

Если стоят знаки препинания, ого вставлять до знаков или после? И ого отделяется пробелом от предыдущего слова?

0

Ого вставлять до знаков препинания. Ого можно отделить пробелом, а можно и не отделять, как удобнее) Извините за то, что долго не отвечал

0

я всё ещё буду ждать ответа, т.к. другое решение мне лично сложно понять

0

Ок) мне не лень, напишу чуть позже

0

хорошо, прошу прощения ,_,

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1338 от 16.11.2016
begin
  var a:=ReadlnString('->').ToWords;
  var s:='';
  foreach var w in a do begin
    s+=w+' ';
    if Pos(w.Right(1),'оО')>0 then s+='ого '
    end;
  Writeln(s);
end.

Пример
-> У нас столько всего интересного есть и зеленого и красного
У нас столько ого всего ого интересного ого есть и зеленого ого и красного ого

(150k баллов)
0

Пример:

0

Введите строку:
О, как прекрасно это море! Как красиво это небо
О ого, как прекрасно ого это ого море! Как красиво ого это ого небо ого

0

ПС: только для русского алфавита

0

В Pascal ABC не читаются строки 't:t,insert(i,s);' Если сможете исправить, создам новое задание на 50 баллов и выберу ваш ответ лучшим

0
0

задание обновил, поставил 50 баллов

0

Я не сильно спец в разных версиях. Щас сделаю другой вариант, но поймёт её ваш Паскаль или нет, сказать не могу

0

Попробуй вместо 't:t,insert(i,s);' вставить: 'insert(s,t,i);'