1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Семакин
Работа 3.6 Упр.17 ГДЗ Семакин 10 класс (Информатика)
Семакин, Хеннер, Шеина
10 класс
Автор
Семакин, Хеннер, Шеина

Работа 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$$ элементов; иначе — нет.



Общая оценка
4.4 / 5
Другие учебники
Другие предметы