ВУЗ:
Составители:
9
Постановка задачи
Входные данные
: n, m ∈ N (множеству натуральных чисел);
a[1..n,1..m] ∈ Z (множеству целых чисел);
x ∈ Z (значение, которое требуется найти в массиве).
Выходные данные
: если x содержится в массиве, то есть x = a[i,j],
то
i− номер cтроки, j − номер столбца; если x отсутствует в массиве, то i =
n+1.
Метод решения
Определим, что нужно найти, используя формальный язык:
(∃ i,j:1 ≤ i ≤ n and 1 ≤ j ≤ m :a[i,j]= x) or
(∀ i,j:1 ≤ i ≤ n and 1 ≤ j ≤ m :a[i,j]≠ x)and (i=n+1).
Если
i=n+1, то это значит, что x not is in a.
Из определения следует, что при построении алгоритма нужно использовать
вложенные циклы: внешний цикл по строкам ( переменная i ) и внутренний по
столбцам (переменная j). Для выхода из циклов при выполнении условия a[I,j]=x
будем использовать логическую переменную flag со значением true.
Описание алгоритма
i := 1; flag:=false;
while (i <= n) and not flag do
begin
j :=1;
while (j <= m) and not flag do
if a[i,j]=x then flag:=true
else j:= j+1
end;
Упражнение 2. Опишите поиск заданного элемента в массиве в виде про-
цедуры и выполните ее для исходных данных, проверяя, что отыскиваемый эле-
мент содержится в массиве, и что элемент отсутствует.
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »