pascal
Определить следующие подпрограммы:
— процедуру формирования строки из заданного количества случайных цифр;
— процедуру вывода на экран монитора символов строки через один пробел;
—функцию, возвращающую количество чётных цифр в указанной строке;
—процедуру изменения строки путём удаления из неё повторяющихся символов.
Применить все вышеперечисленные подпрограммы для строк S(10), St(15), Str(20).
Вывести строки до и после изменения, все искомые значения.
Ответы
===== PascalABC.NET =====
// Формирование строки из заданного количества случайных цифр
procedure P1(n: integer; var s:string);
begin
s := '';
for var i := 1 to n do
s += ChrAnsi(OrdAnsi('0')+Random(0, 9));
end;
// Вывод на экран монитора символов строки через один пробел
procedure P2(s: string) := s.ToCharArray.Println(' ');
// Количество чётных цифр в строке;
function F3(s: string) := s.Count(p -> p.ToDigit.IsEven);
// Изменение строки путём удаления из неё повторяющихся символов
procedure P4(var s:string) := s := s.Distinct.JoinIntoString;
// Затребованные операции со строкой
procedure P(s:string);
begin
Println('=== Длина строки равна', s.Length, '===');
s.Println;
P1(s.Length, s);
s.Println;
P2(s);
Println('Количество четных цифр равно', F3(s));
P4(s);
s.Println
end;
// Основная программа
begin
var s := 10 * '*';
p(s);
var St := 15 * 'a';
P(st);
var Str := 20 * '0';
P(Str)
end.

