Номер §1.4 ПМ 6

ГДЗ по информатике 9 класс, Босова 2023, страница 48

§. ПМ Поиск заданного элемента

Запишите полные тексты двух вариантов программы. Выполните программы на компьютере. В первом варианте поиск числа x в массиве A проводится перебором всех элементов с сохранением индекса найденного элемента в k: k := 0; for i := 1 to N do if A[i] = x then k := i;. Во втором варианте поиск прекращается после первого найденного элемента: i := 0; repeat i := i + 1; until (A[i] = x) or (i = N); if A[i] = x then write(i) else write('Нет').

Решение

В первом варианте k = означает «совпадений пока нет»: допустимые индексы начинаются с . Цикл просматривает все N ячеек и перезаписывает k при каждом совпадении, поэтому в конце остаётся индекс последнего совпадения.

const N = ;
var
  i, k, x: integer;
  A: array[..N] of integer;
begin
  for i :=  to N do
  begin
    A[i] := random();
    writeln('A[', i, ']=', A[i]);
  end;
  write('x=');
  readln(x);
  k := ;
  for i :=  to N do
    if A[i] = x then k := i;
  if k =  then writeln('Нет')
  else writeln('k=', k)
end.

Во втором варианте repeat сначала увеличивает i до , затем проверяет A[]. Цикл завершается при совпадении либо после проверки A[N]; поэтому обращение за границы массива не происходит. Проверка после цикла различает эти два случая.

const N = ;
var
  i, x: integer;
  A: array[..N] of integer;
begin
  for i :=  to N do
  begin
    A[i] := random();
    writeln('A[', i, ']=', A[i]);
  end;
  write('x=');
  readln(x);
  i := ;
  repeat
    i := i + ;
  until (A[i] = x) or (i = N);
  if A[i] = x then writeln('i=', i)
  else writeln('Нет')
end.

Пример проверки: если A[] = , A[] = , A[] = , остальные элементы не равны и x = , первый вариант после шагов i = и i = сохраняет k = , а второй останавливается уже при i = . Если x в массиве отсутствует, оба варианта выводят «Нет».

Ответ

Первый вариант выводит индекс последнего вхождения x, второй — индекс первого вхождения x; если совпадений нет, оба выводят «Нет».

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото