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

Дана строка не более 50 символов. переписать в обратном порядке все слова, начинающиеся с заданной буквы. определить количество предложений в строке. написать программу в паскале

Показать ответ
Ответ:
lerkacom2
lerkacom2
08.10.2020 20:59
PascalABC.NET 3.4.0, сборка 1675 от 12.06.2018
Внимание! Если программа не работает, обновите версию!

begin
  var adelim:=' .,;:!?-'.ToCharArray;
  var s:=ReadlnString;
  Writeln(25*'- ');
  var c:=ReadlnChar('Буква для поиска слов:'); Writeln(25*'- ');
  var ww:=s.ToWords(adelim).Where(w->w.First=c);
  foreach var w in ww do begin
    var i:=Pos(w,s);
    Delete(s,i,w.Length); Insert(w.Inverse,s,i)
    end;
  s.Println; Writeln(25*'- ');
  Writeln('Предложений всего: ',s.ToWords('.').Count)
end.

Дана строка не более 50 символов. переписать в обратном порядке все слова, начинающиеся с заданной б
0,0(0 оценок)
Ответ:
dirysasha
dirysasha
08.10.2020 20:59
// PascalABC.NET 
// Версия 3.3.5 сборка 1662 (29.04.2018)

begin
  var b := ReadlnString('Введите строку -').ToLower+' '; 
  var (z,r) := (',!?.:;'.ToCharArray,'!.?;'.ToCharArray);
  var tt:=true; Range(1,b.Length+b.ToCharArray.Where(t->t in z).Count).ForEach(t->if (b[t] in z) and tt then begin Insert(' ', b, t); tt:=false end else tt:=true);
  var a := b.ToWords;
  var x := ReadlnChar('Буква -');
  var (w, i) := a.Select((w, i)-> (w, i)).Where(t -> t[0].ToString.First.ToLower = x).Reverse.UnZipTuple; 
  i := i.Reverse;
  foreach var t in w.Zip(i, (p, q)-> (p, q)) do a[t[1]] := t[0];
  b := string.Join(' ', a);
  tt:=true; Range(1,b.Length-b.ToCharArray.Where(t->t in z).Count+1).ForEach(t->if (b[t] in z) and tt then begin Delete(b, t - 1, 1); tt:=false end else tt:=true); 
  b.Println; Println('Количество предложений:',b.ToWords(r).Count);
end.

Пример в приложении.

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