1. Дано предложение. Подсчитать число пробелов стоящих ** нечетных местах, и заменить...

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

1. Дано предложение. Подсчитать число пробелов стоящих на нечетных местах, и заменить такие пробелы на символ «*».
2. Дано слово, состоящее из количества букв кратного четырем. Поменять в нем буквы следующим образом: первую с четвертой, вторую с третьей, пятую с восьмой, шестую с седьмой и т.д. Например, из слова «карандаш» должны получить «аракшадн».


Информатика (706 баллов) | 23 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString('>');
  var p:=s.Select((x,i)->(x,i+1)).Where(x->x[1].IsOdd and (x[0]=' '));
  Writeln('Число пробелов на начетных местах равно ',p.Count);
  foreach var t in p do s[t[1]]:='*';
  Writeln(s)
end.

Пример
> А роза упала на лапу Азора
Число пробелов на начетных местах равно 3
А роза*упала*на лапу*Азора

// PascalABC.NET 3.2, сборка 1362 от 14.12.2016
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString('>');
  var n:=s.Length;
  if n mod 4<>0 then Writeln('Кол-во символов не кратно 4')
  else begin
    var i:=1;
    repeat
      Swap(s[i],s[i+3]);
      Swap(s[i+1],s[i+2]);
      i+=4
    until i>n;
    Writeln(s)
    end
end.

Пример
> карандаш
аракшадн
(150k баллов)