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

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

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


Информатика (68 баллов)
оставил комментарий Одаренный (3.9k баллов)

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

оставил комментарий (68 баллов)

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

оставил комментарий (68 баллов)

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

оставил комментарий Одаренный (3.9k баллов)

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

оставил комментарий (68 баллов)

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

Дан 1 ответ
0 голосов
БОГ (150k баллов)
 
Правильный ответ
// 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.

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

оставил комментарий Одаренный (3.9k баллов)

Пример:

оставил комментарий Одаренный (3.9k баллов)

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

оставил комментарий Одаренный (3.9k баллов)

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

оставил комментарий (68 баллов)

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

оставил комментарий (68 баллов)
оставил комментарий (68 баллов)

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

оставил комментарий Одаренный (3.9k баллов)

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

оставил комментарий Одаренный (3.9k баллов)

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

...