Другие языки программирования и технологии

задача. если в заданный текст входит каждая из букв "key",тогда напечаттать " да",иначе " нет "

помогите решить не паскале
Ну, что-то типа такого
var N[1000]: string, key[10]: string;
var i: integer, j: integer, k: integer, m: integer;
do while chr(N(i)) <> 10 ' здесь вводим побуквенно текст, пока не нажмем Enter
ReadIn N(i); ' вводим очередную букву
m = m+1; ' m - счетчик букв
end
do while chr(key(i)) <> 10 ' здесь вводим буквы key, пока не нажмем Enter
ReadIn key(i); ' вводим очередную букву
k = k+1; ' k - счетчик букв
end
P = 0; ' P - признак вхождения букв в текст.
for j = 1 to k
for i = 1 to m
if N(i) = key(j)
begin P = P + 1; end
end
end
if P = k ' признак сработал столько же раз, сколько букв в массиве key
WriteIn "да";
else ' признак сработал меньше раз, чем букв в массиве key
WriteIn "нет";
end
end
Серёга Вовк
Серёга Вовк
95 735
Лучший ответ
Доброго времени суток.

Да зачем же так сложно? Все значительно проще!

Flag := True; {предположим, что входит}
for i:=1 to Length(Key) do
if Pos(Key[ i ], InStr) = 0 then begin
Flag := False; {сбрасываем флаг}
Break; {и дальше не проверяем}
end;

Вот и все. В переменную InStr помещаете свой заданный текст, а в переменную Key слово, все буквы которого должны входить в текст. После завершения значение Flag будет True, если "заданный текст входит каждая из букв "key"" и False в противном случае. В зависимости от значения логической переменной вывести нужный текст самостоятельно сможете?

Удачи!

Похожие вопросы