Дан массив слов и слово. Вывести слова, входящие в заданное слово не более k раз (одна буква может входить только в одно слово).Напишите функцию Good(s,sl : string; k : longint), которая возвращает «подходит» ли слово или нет, тип возвращаемого значения — boolean.Сохраните ее под именем good.pas — Pascal(Паскаль)

Формат ввода:

k — количество раз
sl — слово
n — количество слов
s[1] — первое слово
s[2] — второе слово

s[n] — последнее слово
Формат вывода:

s[1] — первое слово
s[2] — второе слово

s[m] — последнее слово

uses crt;
function Good(s,sl:string;k:byte):boolean;{byte достаточно}
var i,j,n:byte;
    s1:string;
begin
s1:=sl;
n:=0;
while pos(s,s1)>0 do{пока слово есть}
 begin
  n:=n+1;{считаем}
  delete(s1,pos(s,s1),length(s));{удаляем}
 end;
if (n>0)and(n<=k)then Good:=true{если есть и не более к раз, подходит}
else Good:=false;
end;
 
var mas:array[1..20] of string;
    k,n,i:byte;
    sl:string;
begin
clrscr;
repeat
write('Введите количество раз k=');
readln(k);
until k>0;
writeln('Введите длинное слово:');
readln(sl);
repeat
write('Введите количество искомых слов, не более 20 n=');
readln(n);
until n in [1..20];
writeln('Введите ',n,' слов:');
for i:=1 to n do
readln(mas[i]);
{выводим нужные слова}
writeln('Слова, содержащиеся в заданном слове не более ',k,' раз:');
for i:=1 to n do
if Good(mas[i],sl,k) then
writeln(mas[i]);
readln
end.

Leave a Comment

37 − 30 =