Получить элементы вектора x, равные сумме чётных элементов каждой строки - Free Pascal

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

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

Дана квадратная матрица порядка n(n=5). Получить элементы вектора x, равные сумме чётных элементов каждой строки, если среди элементов матрицы нет отрицательных элементов, иначе каждый элемент вектора x равен произведению элементов столбца. С комментариями, пожалуйста.

Решение задачи: «Получить элементы вектора x, равные сумме чётных элементов каждой строки»

textual
Листинг программы
  1. uses crt;
  2. const n=5;//размер матрицы
  3. var a:array[1..n,1..n] of integer; //матрица из чисел от -70 до 70
  4.     x:array[1..n] of longint;//вектор из чисел не более 70^5
  5.     i,j,k:byte; //счетчики циклов и фиксатор отрицательных
  6. begin
  7. clrscr;
  8. randomize;
  9. writeln('Введите ',n*n,' целых чисел  по модулю не более 70');
  10. for i:=1 to n do
  11. for j:=1 to n do
  12. repeat
  13. write('a[',i,',',j,']=');
  14. readln(a[i,j]);
  15. until abs(a[i,j])<=70; //вод с проверкой, чтобы произведение 5 чисел точно не вышло за пределы  типа Longint
  16. writeln('Матрица');
  17. k:=0; //пока отрицательных нет
  18. for i:=1 to n do
  19.  begin
  20.   for j:=1 to n do
  21.    begin
  22.     write(a[i,j]:4);
  23.     if a[i,j]<0 then k:=1; //если есть
  24.    end;
  25.   writeln;
  26.  end;
  27. if k=0 then
  28.  begin
  29.   writeln('Отрицательных элементов нет');
  30.   writeln('Вектор Х сумм четных в строках');
  31.   for i:=1 to n do
  32.    begin
  33.     x[i]:=0;
  34.     for j:=1 to n do  //считаем суммы четных в строках
  35.     if a[i,j] mod 2=0 then x[i]:=x[i]+a[i,j];
  36.    end;
  37.  end
  38. else
  39.  begin
  40.   writeln('Отрицательные элементы есть');
  41.   writeln('Вектор Х произведений в столбцах');
  42.   for j:=1 to n do
  43.    begin
  44.     x[j]:=1;
  45.     for i:=1 to n do
  46.     x[j]:=x[j]*a[i,j];//считаем произведения в столбцах
  47.    end;
  48.  end;
  49. for i:=1 to n do
  50. write(x[i],' ');
  51. readln
  52. end.

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

  1. Объявление переменных:
    • a: матрица из чисел от -70 до 70
    • x: вектор из чисел не более 70^5
    • i, j, k: счётчики циклов и фиксатор отрицательных
  2. Ввод матрицы:
    • Пользователю предлагается ввести n*n целых чисел по модулю не более 70
    • Цикл чтения чисел и проверка на допустимость (не более 70)
  3. Вывод матрицы:
    • Цикл вывода чисел матрицы с шагом в 4 символа
    • Если встречается отрицательное число, то счётчик k принимает значение 1
  4. Проверка наличия отрицательных чисел:
    • Если k=0, то отрицательных чисел нет
    • Если k=1, то отрицательные числа есть
  5. Вычисление суммы четных чисел в строках:
    • Цикл вычисления суммы четных чисел в каждой строке
    • Если число чётное, то оно прибавляется к соответствующему элементу вектора x
  6. Вычисление произведения чисел в столбцах:
    • Цикл вычисления произведения чисел в каждом столбце
    • Если число положительное, то оно умножается на соответствующий элемент вектора x
  7. Вывод вектора x:
    • Цикл вывода элементов вектора x с пробелами между ними
  8. Ввод для завершения работы программы

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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