Сформировать матрицу по правилу - Pascal (80846)
Формулировка задачи:
Помогите решить задачку.
Пускай дана матрица А размером n*m что состоит из действительных чисел.нужно получить матрицу
В размером n*m, каждый елемент b[i,j] который является истинной ,если сума соседних
елементов а[i,j], меньше установленного размера S.нужно использовать функцию нахождения
сумы соседних елементов.
Решение задачи: «Сформировать матрицу по правилу»
textual
Листинг программы
const n=5; m=5;
type TArr = array [1..n,1..m] of Real;
function Sum(const a: TArr; i, j: Integer): Real;
var i1, i2, j1, j2: Integer; s: Real;
begin
i1:=i; i2:=i; j1:=j; j2:=j; s:=-a[i,j];
if i1>1 then Dec(i1); if i2<n then Inc(i2);
if j1>1 then Dec(j1); if j2<m then Inc(j2);
for i:=i1 to i2 do for j:=j1 to j2 do s:=s+a[i,j];
Sum:=s;
end;
var
a: TArr;
b: array [1..n,1..m] of Boolean;
s: Real;
i, j: Integer;
begin
Randomize;
for i:=1 to n do for j:=1 to m do a[i,j]:=Random(100);
WriteLn('A =');
for i:=1 to n do begin
for j:=1 to m do Write(a[i,j]:6:0); WriteLn;
end;
Write('S: '); ReadLn(s);
for i:=1 to n do for j:=1 to m do b[i,j]:=Sum(a,i,j)<s;
WriteLn('B =');
for i:=1 to n do begin
for j:=1 to m do Write(b[i,j]:6); WriteLn;
end;
end.
Объяснение кода листинга программы
- Объявляются константы
nиmи им присваиваются значения5. - Определяется тип
TArr- это двумерный массив размеромnнаmэлементов типа Real. - Создается функция
Sum, которая принимает массивaтипаTArrи два целочисленных значенияiиj, и возвращает значение типа Real.- Объявляются переменные
i1,i2,j1,j2иsтипа Real. - Переменным
i1иi2присваиваются значенияi,j1иj2также присваиваются значенияj, аsустанавливается в значение-a[i,j]. - Проверяется, чтобы значения переменных
i1,i2,j1иj2оставались в пределах размеров массиваa. - Затем суммируются элементы массива
aв заданных пределах и сохраняется в переменнойs.
- Объявляются переменные
- Объявляются переменные
aтипаTArr,b- двумерный массив размеромnнаmэлементов типа Boolean,sтипа Real,iиjтипа Integer. - Генерируются случайные значения и заполняется массив
aслучайными числами от 0 до 99. - Выводится массив
aв консоль. - Запрашивается ввод значения переменной
sс консоли. - Для каждого элемента массива
aвычисляется значение функцииSumи сравнивается с введенным значениемs. Результат сравнения сохраняется в массивb. - Выводится массив
bв консоль.