Преобразовать исходную матрицу в новую по формуле - Pascal ABC
Формулировка задачи:
Вычислить сумму элементов главной диагонали матрицы В (MxМ), М<=17. Если сумма окажется >10 , то исходную матрицу преобразовать по формуле
В(I,J) = В(I,J) + 3.5,
если сумма будет ≤10, то преобразование выполнить по формуле
В(I,J) = В(I,J) – 3.5.
Вычисленную сумму и элементы преобразованной матрицы вывести на экран
Решение задачи: «Преобразовать исходную матрицу в новую по формуле»
textual
Листинг программы
- const
- m = 17;
- type
- mas = array[1..m, 1..m] of real;
- var
- n: integer;
- S: real;
- procedure vv_preobr(var x: mas; f: boolean);
- var
- i, j: integer;
- begin
- if f then S := 0;
- for i := 1 to n do
- begin
- for j := 1 to n do
- if f then //Формируем массив и вычисляем сумму
- begin
- x[i, j] := -random * 5 + random(16);
- write(x[i, j]:7:2);
- if i = j then S := S + x[i, j]
- end
- else //Преобразовываем массив
- begin
- if S > 10 then x[i, j] := x[i, j] + 3.5
- else x[i, j] := x[i, j] - 3.5;
- write(x[i, j]:7:2)
- end;
- writeln
- end
- end;
- var
- a: mas;
- begin
- randomize;
- repeat
- writeln('n=?, n<=17');
- readln(n)
- until (n > 1) and (n <= 17);
- writeln('A:');
- vv_preobr(a, true);
- writeln('summa = ', S:0:3);
- writeln('A'':');
- vv_preobr(a, false);
- readln
- end.
Объяснение кода листинга программы
- В начале кода объявляются необходимые переменные и константы.
- Создается тип данных
mas
, который представляет собой массив целых чисел размером от 1 до 17. - Объявляется переменная
n
типаinteger
, которая будет использоваться для чтения размеров матрицы от пользователя. - Объявляется переменная
S
типаreal
, которая будет использоваться для хранения суммы элементов матрицы. - Создается процедура
vv_preobr
, которая принимает две переменные:x
иf
. Переменнаяx
также является массивом типаmas
. - Внутри процедуры
vv_preobr
объявляются две переменныеi
иj
типаinteger
. - В цикле
for
происходит следующее:- Если значение переменной
f
равно истине, то вычисляется случайное число от -5 до 5 и присваивается элементуx[i, j]
. Также выводится значениеx[i, j]
на экран. - Если значение переменной
f
равно ложью, то значениеx[i, j]
увеличивается на 3.5 или уменьшается на 3.5 в зависимости от значения переменнойS
. Значениеx[i, j]
также выводится на экран. - После выполнения цикла
for
выводится значение переменнойS
на экран.
- Если значение переменной
- В основной части кода считывается размер матрицы от пользователя.
- Вызывается процедура
vv_preobr
с аргументомtrue
, чтобы преобразовать матрицу по заданной формуле. - Вызывается процедура
vv_preobr
с аргументомfalse
, чтобы преобразовать матрицу обратно в исходное состояние. - Выводится сообщение с результатом выполнения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д