Урок 17 Задача 8
Primary tabs
Проверить можно ли строки из m перестановкой символов получить строку n.
var
m, n: string;
i: integer;
q: boolean;
{ функция принимает символ и две строки,
считает, сколько данных символов в одной строке и сколько во второй,
возвращает значение булевой переменной в зависимости,
одинаковое или разное количество символов в строках }
function prov(x: char; m, n: string): boolean;
var
i, a, b: integer;
begin
a:= 0;
b:= 0;
q:= false;
for i:=1 to length(m) do
begin
if x = m[i] then
a:= a + 1;
if x = n[i] then
b:= b + 1;
end;
if a = b then
q:= true;
result:= q;
end;
begin /////////// начало тела основной программы
write ('Введите строку m: ');
readln(m); // считываем первую строку
write ('Введите строку n: ');
readln(n); // считываем вторую строку
if length(m) = length(n) then // если общее количество символов в строках равно
for i:=1 to length(m) do // обходим любую из двух строк
begin
q:= prov (m[i], m, n); // передаем в ф-цию текущий символ и обе строки
if q = false then // если количество данного символа в строках разное
break; // выходим из цикла
end;
if (not (length(m) = length(n))) or (q = false) then // если количество символов в строках разное или ф-ция вернула ложный рез-тат
write ('Нельзя')
else
write ('Можно');
readln();
end.Вывод в консоли:
Введите строку m: sdfg Введите строку n: sdff Нельзя
Введите строку m: sdsdg Введите строку n: gd Нельзя
Введите строку m: gffkl Введите строку n: flkgf Можно
- Log in to post comments
- 526 reads