GAECHKA
Твоя помощница в решении задач

Сделать большими все буквы в тех словах, в которых нет ни одной пары подряд идущих согласных букв

Сделать большими все буквы в тех словах, в которых нет ни одной пары подряд идущих согласных букв.
0
вопрос задан

Источник


2 ответа
Решение
const
  capital   = 'ABCDEFJHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
  lowercase = 'abcdefjhijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
  consonant = 'BbCcDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxYyZzБбВвГгДдЖжЗзЙйКкЛлМмНнПпРрСсТтФфХхЦцЧчШшЩщ';
  delimiter: set of char = [' ', ',', '.', '!', '?', ':', ';'];
 
var
  i, j, p, k: integer;
  s: string;
 
begin
  writeln('Введите строку:');
  readln(s);
  s := s + ' ';
  j := 1;
  k := 0;
  for i := 2 to length(s) do
    if s[i] in delimiter then
      begin
        if k = 0 then
          for j := j to i - 1 do
            begin
              p := pos(s[j], lowercase);
              if p > 0 then s[j] := capital[p]
            end;
        j := i;
        k := 0
      end
    else if (pos(s[i], consonant) > 0) and (pos(s[i - 1], consonant) > 0) then inc(k);
  writeln('Результат:');
  writeln(s);
  readln
end.