profile
Размещено 5 лет назад по предмету Информатика от lukinykhv

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

  1. Ответ на вопрос
    Ответ на вопрос дан Giammy
    // 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.

    Пример в приложении.
    1. Ответ на вопрос
      Ответ на вопрос дан Giammy
      Я думал последнее - первое
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Я думаю развернуть - это да, "оволс"
    3. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Хотя, кто знает... может "переписать в обратном порядке" - это у автора обозначает "создать массив слов и вывести его списком от последнего слова к первому"
    4. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Но раз на мои вопросы не отвечено, наверно, каждый понимает, как хочет.
    5. Ответ на вопрос
      Ответ на вопрос дан Giammy
      Оставлю пока так, если автор одумается и отпишет - изменю, пока так)
  2. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    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.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.