Помогите, пожалуйста. Pascal. Вводится предложение. Записать в файл слова начинающиеся с...

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

Помогите, пожалуйста. Pascal. Вводится предложение. Записать в файл слова начинающиеся с букв от 'м' до 'я'


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

1) Различать ли маленькие и большие буквы? 2) как слова отделяются друг от друга? 3) разделителей между словами всегда ровно один или может быть много? 4) какая конкретно версия Паскаля?

0

1) не различать 2,3) слова могут разделяться несколькими пробелами 4) PascalАВС

0

PascalАВС - такой версии нет. Есть устаревшая и не поддерживаемая разработчиками с 2007 года Pascal АВС и есть актуальная PascalАВС.Net

0

Правильно, я ошиблась, версия PascalABC.Net

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.Net 3.0, сборка 1066
var
  s, wd: string;
  n, pt: integer;

begin
  Write('Введите строку: ');Readln(s);
  n := Length(s); pt := 1;
  repeat
    // Пропускаем все символы до первого непробельного
    while pt <= n do<br>      if s[pt] = ' ' then Inc(pt) else break;
    if pt <= n then begin<br>      // Выделяем очередное слово
      wd := '';
      while pt <= n do<br>        if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end
        else break;
      if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd)
    end
  until pt > n;
end.

Тестовое решение:
Введите строку: **А роза    упала   на    лапу Азора    **
роза
упала
на

А вот так версия 3.0 позволяет решить задачу "по-современному":

// PascalABC.Net 3.0, сборка 1066
begin
  var s:=ReadString('Введите строку: ');
  Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я']))
end.

Тестовое решение:
Введите строку:  **А роза    упала   на    лапу Азора    **
Результат: [роза,упала,на]

(142k баллов)