Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Определить, отвечает ли заданный массив некоторым требованиям



Задача. Определить, есть ли в заданном массиве элемент, равный 0.

Опишем логическую функцию, значение которой равно истине, если такой элемент есть, и ложь в противном случае. Самый простой способ - это просматривать элементы и, если найден искомый элемент, то присвоить функции значение True, иначе - False.

Function Check1(X: MyArray; n, m: integer): Boolean; Var i, j: integer; Flag: Boolean; Begin Flag:= False; {Предполагаем, что искомого элемента в массиве нет} i:= 1; while not(Flag) and (i<=n) do {элемент не найден и строки не закончились} begin j:= 1; while (j<=m) and (X[i, j]<>0) do {перебираем все элементы текущей строки, пропуская ненулевые элементы} Inc(j); Flag:= not(j=m+1);{если искомый элемент найден, то переменной Flag присваиваем значение True} Inc(i); end; Check1:= Flag; End;

Задача. Определить, является ли данный квадратный массив симметричным относительно своей главной диагонали.

В задачах подобного типа необходимо увидеть зависимость между индексами элементов массива. Для этого удобно представить массив в виде таблицы, обозначив элементы, например, буквой а и написав рядом их индексы.

Заметим, что если массив является симметричным, то для него выполняется равенство A[i, j]=A[j, i] для всех i=1,..., n и j=1,..., n. Поэтому можно составить следующую функцию:

Function Check2(X: MyArray; n, m: integer): Boolean; Var i, j: integer; Flag: Boolean; Begin Flag:= True; {Предполагаем, что матрица симметрична} i:= 2; while Flag and (i<n) do begin j:= 1; while (j<i) and (X[i, j]=X[j, i]) do Inc(j); Flag:= (j=i); Inc(i); end; Check2:= Flag; End;

Вопрос. Почему в функции употребляется условие i>j? Можно ли без него обойтись и что при этом изменится?





Дата публикования: 2015-10-09; Прочитано: 257 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...