Составьте программу, позволяющую проверить, можно ли из букв слова Х составить слово У....

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

Составьте программу, позволяющую проверить, можно ли из букв слова Х составить слово У. Буквы можно переставлять, но каждую букву можно использовать только 1 раз.


Информатика (162 баллов) | 49 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  var x:=ReadlnString('Введите слово Х:');
  var y:=ReadlnString('Введите слово Y:');
  var Good:=True;
  for var i:=1 to y.Length do begin
    var p:=Pos(y[i],x);
    if p>0 then Delete(x,p,1)
    else begin Good:=False; Break end
    end;
  if Good then
    Writeln('Можно составить ',y)
  else
    Writeln('Нельзя составить ',y)
end.

Тестовое решение:
Введите слово Х: образование
Введите слово Y: название
Нельзя составить название

Введите слово Х: образование
Введите слово Y: барон
Можно составить барон

(142k баллов)
0

прошу прощения, а что здесь значит переменная p?

0

я ее переделала немного, ибо насчет break препод бомбит

0

program pr;
var
x,y:string;
i,p:integer;
f:boolean;
begin
writeln('введите слово');
readln(x);
writeln('введите слово');
readln(y);
F:=True;
for i:=1 to Length(y) do begin
p:=Pos(y[i],x);
if p>0 then Delete(x,p,1)
else begin f:=False;end;
    end;
  if f then
    Writeln('Можно составить ')
  else
    Writeln('Нельзя составить ')
end.

0

Не завидую Вам, если у Вас "препод". Лучше бы был преподаватель, может не бомбил бы тогда.

0

прошу прощения, а что здесь значит переменная p?

0

p - позиция найденного символа в строке