Преобразовать исходную матрицу в новую по формуле - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Вычислить сумму элементов главной диагонали матрицы В (MxМ), М<=17. Если сумма окажется >10 , то исходную матрицу преобразовать по формуле В(I,J) = В(I,J) + 3.5, если сумма будет ≤10, то преобразование выполнить по формуле В(I,J) = В(I,J) – 3.5. Вычисленную сумму и элементы преобразованной матрицы вывести на экран

Решение задачи: «Преобразовать исходную матрицу в новую по формуле»

textual
Листинг программы
  1. const
  2.   m = 17;
  3.  
  4. type
  5.   mas = array[1..m, 1..m] of real;
  6.  
  7. var
  8.   n: integer;
  9.   S: real;
  10.  
  11. procedure vv_preobr(var x: mas; f: boolean);
  12. var
  13.   i, j: integer;
  14. begin
  15.   if f then S := 0;
  16.   for i := 1 to n do
  17.   begin
  18.     for j := 1 to n do
  19.       if f then //Формируем массив и вычисляем сумму
  20.       begin
  21.         x[i, j] := -random * 5 + random(16);
  22.         write(x[i, j]:7:2);
  23.         if i = j then S := S + x[i, j]
  24.       end
  25.       else //Преобразовываем массив
  26.         begin
  27.           if S > 10 then x[i, j] := x[i, j] + 3.5
  28.           else x[i, j] := x[i, j] - 3.5;
  29.           write(x[i, j]:7:2)
  30.         end;
  31.     writeln
  32.   end
  33. end;
  34.  
  35. var
  36.   a: mas;
  37.  
  38. begin
  39.   randomize;
  40.   repeat
  41.     writeln('n=?, n<=17');
  42.     readln(n)
  43.   until (n > 1) and (n <= 17);
  44.   writeln('A:');
  45.   vv_preobr(a, true);
  46.   writeln('summa = ', S:0:3);
  47.   writeln('A'':');
  48.   vv_preobr(a, false);
  49.   readln
  50. end.

Объяснение кода листинга программы

  1. В начале кода объявляются необходимые переменные и константы.
  2. Создается тип данных mas, который представляет собой массив целых чисел размером от 1 до 17.
  3. Объявляется переменная n типа integer, которая будет использоваться для чтения размеров матрицы от пользователя.
  4. Объявляется переменная S типа real, которая будет использоваться для хранения суммы элементов матрицы.
  5. Создается процедура vv_preobr, которая принимает две переменные: x и f. Переменная x также является массивом типа mas.
  6. Внутри процедуры vv_preobr объявляются две переменные i и j типа integer.
  7. В цикле for происходит следующее:
    • Если значение переменной f равно истине, то вычисляется случайное число от -5 до 5 и присваивается элементу x[i, j]. Также выводится значение x[i, j] на экран.
    • Если значение переменной f равно ложью, то значение x[i, j] увеличивается на 3.5 или уменьшается на 3.5 в зависимости от значения переменной S. Значение x[i, j] также выводится на экран.
    • После выполнения цикла for выводится значение переменной S на экран.
  8. В основной части кода считывается размер матрицы от пользователя.
  9. Вызывается процедура vv_preobr с аргументом true, чтобы преобразовать матрицу по заданной формуле.
  10. Вызывается процедура vv_preobr с аргументом false, чтобы преобразовать матрицу обратно в исходное состояние.
  11. Выводится сообщение с результатом выполнения программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы