Получить элементы вектора x, равные сумме чётных элементов каждой строки - Free Pascal
Формулировка задачи:
Дана квадратная матрица порядка n(n=5). Получить элементы вектора x, равные сумме чётных элементов каждой строки, если среди элементов матрицы нет отрицательных элементов, иначе каждый элемент вектора x равен произведению элементов столбца. С комментариями, пожалуйста.
Решение задачи: «Получить элементы вектора x, равные сумме чётных элементов каждой строки»
textual
Листинг программы
- uses crt;
- const n=5;//размер матрицы
- var a:array[1..n,1..n] of integer; //матрица из чисел от -70 до 70
- x:array[1..n] of longint;//вектор из чисел не более 70^5
- i,j,k:byte; //счетчики циклов и фиксатор отрицательных
- begin
- clrscr;
- randomize;
- writeln('Введите ',n*n,' целых чисел по модулю не более 70');
- for i:=1 to n do
- for j:=1 to n do
- repeat
- write('a[',i,',',j,']=');
- readln(a[i,j]);
- until abs(a[i,j])<=70; //вод с проверкой, чтобы произведение 5 чисел точно не вышло за пределы типа Longint
- writeln('Матрица');
- k:=0; //пока отрицательных нет
- for i:=1 to n do
- begin
- for j:=1 to n do
- begin
- write(a[i,j]:4);
- if a[i,j]<0 then k:=1; //если есть
- end;
- writeln;
- end;
- if k=0 then
- begin
- writeln('Отрицательных элементов нет');
- writeln('Вектор Х сумм четных в строках');
- for i:=1 to n do
- begin
- x[i]:=0;
- for j:=1 to n do //считаем суммы четных в строках
- if a[i,j] mod 2=0 then x[i]:=x[i]+a[i,j];
- end;
- end
- else
- begin
- writeln('Отрицательные элементы есть');
- writeln('Вектор Х произведений в столбцах');
- for j:=1 to n do
- begin
- x[j]:=1;
- for i:=1 to n do
- x[j]:=x[j]*a[i,j];//считаем произведения в столбцах
- end;
- end;
- for i:=1 to n do
- write(x[i],' ');
- readln
- end.
Объяснение кода листинга программы
- Объявление переменных:
- a: матрица из чисел от -70 до 70
- x: вектор из чисел не более 70^5
- i, j, k: счётчики циклов и фиксатор отрицательных
- Ввод матрицы:
- Пользователю предлагается ввести n*n целых чисел по модулю не более 70
- Цикл чтения чисел и проверка на допустимость (не более 70)
- Вывод матрицы:
- Цикл вывода чисел матрицы с шагом в 4 символа
- Если встречается отрицательное число, то счётчик k принимает значение 1
- Проверка наличия отрицательных чисел:
- Если k=0, то отрицательных чисел нет
- Если k=1, то отрицательные числа есть
- Вычисление суммы четных чисел в строках:
- Цикл вычисления суммы четных чисел в каждой строке
- Если число чётное, то оно прибавляется к соответствующему элементу вектора x
- Вычисление произведения чисел в столбцах:
- Цикл вычисления произведения чисел в каждом столбце
- Если число положительное, то оно умножается на соответствующий элемент вектора x
- Вывод вектора x:
- Цикл вывода элементов вектора x с пробелами между ними
- Ввод для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д