Работа 3.6 Упр.17 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 17. Даны две последовательности а1, а2, … ,аn и b1, b2, … ,bm (m < n). В каждой из них значения элементов различны. Верно ли, что все элементы второй последовательности входят в первую последовательность? *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-6/17 98
Нужно проверить, входят ли все элементы последовательности $$b_1, b_2, \dots, b_m$$ в последовательность $$a_1, a_2, \dots, a_n$$. Так как в каждой последовательности все элементы различны, достаточно для каждого элемента второй последовательности искать его среди элементов первой.
Если хотя бы один элемент из $$b$$ не найден в $$a$$, ответ будет отрицательным. Если все элементы найдены, то все элементы второй последовательности входят в первую.
const n=20;
type mas=array[1..n] of integer;procedure vvod(var a:mas;c:char);
var m,i,j,x,k:integer;
begin
writeln(‘Massiv ‘,c);
a[1]:=random(50);
write(a[1]:3);
m:=1;
for i:=2 to n do
begin
repeat
k:=1;
x:=random(50);
for j:=1 to m do
if a[j]=x then k:=1;
until k=0;
a[i]:=x;
m:=m+1;
write(a[i]:3);
end;
writeln;
end;procedure peres(a,b:mas;var c:mas;var m:integer);
var i,j,k:integer;
begin
m:=0;
for i:=1 to n do
begin
j:=1;
k:=0;
while (j<=n) and (k=0) do
if a[j]=b[i] then k:=1
else inc(j);
if k=1 then
begin
inc(m);
c[m]:=b[i];
end;
end;
writeln(‘Posledovatelnost’);
for i:=1 to m do
write(c[i]:3);
end;var a,b,c:mas;
m:integer;
begin
randomize;
vvod(a,’A’);
vvod(b,’B’);
peres(a,b,c,m);
readln
end.
В процедуре peres для каждого элемента массива b выполняется поиск в массиве a. Если элемент найден, он заносится в массив c. В результате в c будут только те элементы второй последовательности, которые входят в первую.
Ответ: да, если после проверки в массиве c оказалось ровно $$m$$ элементов; иначе — нет.