Язык программирования Pascal. Процедуры и функции. Рекурсия. Васильев В.В - 17 стр.

UptoLike

17
результата конъюнкции своего прежнего значения и значения функции
spad(v,r).
Если оказывается , что обе переменные f и g имеют значение false, то цикл
по p прекращается и печатается неудовлетворительный результат .
Проверка упорядоченности правого столбца p - го витка проводится ана-
логично. Для формирования вспомогательного массива организуется цикл по j
от p до m-p+1, в котором перебираются строки (см . схему выше). Во вспомога-
тельный массив записываются элементы матрицы A [j,n-p+1]. Если на послед-
нем витке спирали правого столбца нет (например , у матриц размера 3x5), то
вспомогательный массив будет содержать один элемент a[p, n-p+1]. Функции
rost и spad в этом случае возвратят значение true, и значение переменных f и g
не будет искажено.
При проверке упорядоченности нижней строки p-го витка для формиро-
вания вспомогательного массива организуется цикл по j от n-p+1 до p, в кото-
ром перебираются столбцы (см . схему выше). Во вспомогательный массив за-
писываются элементы матрицы A [m-p+1,j]. Особый случай: на последнем
витке спирали нижней строки нет . В этом случае формировать вспомогатель -
ный массив и использовать функции rost и spad для получения новых значений
f и g нельзя (подумайте, почему?). Особый случай имеет место на последнем
витке спирали у матриц с нечетным количеством строк m .
При проверке упорядоченности левого столбца p - го витка для формиро-
вания вспомогательного массива организуется цикл по j от m-p+1 до p+1, в ко-
тором перебираются строки (см . схему выше). Во вспомогательный массив за-
писываются элементы матрицы A [j,p]. Особый случай: на последнем витке
спирали левого столбца нет . В этом случае формировать вспомогательный мас-
сив и использовать функции rost и spad для получения новых значений f и g
нельзя (подумайте, почему?). Особый случай имеет место на последнем витке
спирали у матриц с нечетным количеством столбцов n .
По завершению внешнего цикла печатается положительный результат в
случае истинности дизъюнкции f и g.
В представленной ниже программе для наглядности ее работы предусмот -
рена возможность выводить на экран элементы вспомогательных массивов .
Операторы , печатающие элементы вспомогательных массивов , оформлены как
комментарии, содержащие слово контроль” .
Program Snake;
Uses crt;
Const m_max=10; n_max=10;
Type matr=array[1..m_max,1..n_max] of real;
vect=array[1..n_max] of real;
Var a:matr;k,r,p,i,j,m,n,p_max:integer; f,g:boolean;
v:vect;
function rost(v:vect; n:integer):boolean;
var s:boolean; i:integer;