Дан массив строк. Преобразовать строки с четной длиной по правилу: удалить все цифры из второй половины строки; а строки с нечетной длиной: вставить до каждой буквы знак «*».PascalABC.NET
// Обработка каждой строки for i := 0 to Length(arr) - 1 do begin // Получение длины строки и половины длины halfLength := Length(arr[i]) div 2;
// Проверка на четность/нечетность длины строки if Length(arr[i]) mod 2 = 0 then begin // Удаление цифр из второй половины строки modifiedString := copy(arr[i], 1, halfLength); for j := halfLength + 1 to Length(arr[i]) do begin if not (arr[i][j] in ['0'..'9']) then modifiedString := modifiedString + arr[i][j]; end; writeln(modifiedString); end else begin // Вставка знака '*' перед каждой буквой modifiedString := ''; for j := 1 to Length(arr[i]) do begin if arr[i][j] in ['a'..'z', 'A'..'Z'] then modifiedString := modifiedString + '*' + arr[i][j] else modifiedString := modifiedString + arr[i][j]; end; writeln(modifiedString); end;
program ModifyStrings;
var
arr: array of string;
i, j, halfLength: integer;
modifiedString: string;
begin
// Заполнение массива строк
SetLength(arr, 3);
arr[0] := 'Hello123';
arr[1] := 'World456';
arr[2] := 'PascalABC';
// Обработка каждой строки
// Проверка на четность/нечетность длины строкиfor i := 0 to Length(arr) - 1 do
begin
// Получение длины строки и половины длины
halfLength := Length(arr[i]) div 2;
if Length(arr[i]) mod 2 = 0 then
begin
// Удаление цифр из второй половины строки
modifiedString := copy(arr[i], 1, halfLength);
for j := halfLength + 1 to Length(arr[i]) do
begin
if not (arr[i][j] in ['0'..'9']) then
modifiedString := modifiedString + arr[i][j];
end;
writeln(modifiedString);
end
else
begin
// Вставка знака '*' перед каждой буквой
modifiedString := '';
for j := 1 to Length(arr[i]) do
begin
if arr[i][j] in ['a'..'z', 'A'..'Z'] then
modifiedString := modifiedString + '*' + arr[i][j]
else
modifiedString := modifiedString + arr[i][j];
end;
writeln(modifiedString);
end;
end;
end.