Программа
Program Oksana;
{ Матрица M[N*N], N<=10, элементы целые.
Для каждой строки набор суммы элементов
удовлетворяющих условию b<=Mij<=a.
Формирование из полученных сумм
вектора X[N]. }
Const MaxN=10; { Максимальная размерность матрицы }
Var M:array[1..MaxN,1..MaxN] of integer; { Матрица }
X:array[1..MaxN] of integer; { Вектор }
N:integer; { Размерность матрицы }
i,j:integer; { Счетчик }
a,b:integer; { Параметры условия }
Function Sum(i:integer):integer; { Вычисление суммы в i-ой строке }
var SumInt:integer; { Переменная для набора суммы }
k:integer; { Счетчик }
Begin
SumInt:=0; { Обнуление суммы }
for k:=1 to N do if (b<=M[i,k])and(M[i,k]<=a) then SumInt:=SumInt+M[i,k];
{ Просмотр строки матрицы, проверка условия,
при выполнении условия набор суммы }
Sum:=SumInt { Определение значения функции }
End;
BEGIN
Writeln; { Пропуск строки }
Write('Введите размерность матрицы ');
{ Приглашение ввести размерность матрицы }
Readln(N); { Ввод размерности матрицы }
for i:=1 to N do { Цикл ввода строк матрицы }
for j:=1 to N do { Цикл ввода элементов матрицы }
Begin
Write('Введите M(',i,',',j,') ');
{ Приглашение ввести элемент матрицы }
Readln(M[i,j]) { Ввод элемента матрицы }
End;
Write('Введите параметр условия "b" ');
{ Приглашение ввести параметр условия }
Readln(b); { Ввод параметра условия }
Write('Введите параметр условия "a" ');
{ Приглашение ввести параметр условия }
Readln(a); { Ввод параметра условия }
Writeln; { Пропуск строки }
for j:=1 to N do Write('|-----'); { Вывод верхней черты таблицы по циклу }
Writeln('|'); { Вывод правой черты таблицы }
for i:=1 to N do { Цикл вывода строк матрицы }
Begin
for j:=1 to N do Write('|',M[i,j]:5); { Цикл вывода вертикальной
разделительной черты таблицы
и элементов матрицы }
Writeln('|'); { Вывод правой черты таблицы }
for j:=1 to N do Write('|-----'); { Цикл вывода горизонтальной
разделительной черты таблицы}
Writeln('|') { Вывод правой черты таблицы }
End;
for i:=1 to N do X[i]:=Sum(i); { Цикл формирования вектора }
Writeln; { Пропуск строки }
for j:=1 to N do Write('|-----'); { Вывод верхней черты таблицы по циклу }
Writeln('|'); { Вывод правой черты таблицы }
for i:=1 to N do Write('|',X[i]:5); { Вывод вектора "X" }
Writeln('|'); { Вывод правой линии таблицы }
for j:=1 to N do Write('|-----'); { Вывод нижней черты таблицы по циклу }
Writeln('|'); { Вывод правой черты таблицы }
END.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию