uses crt;
const
space = ' ';
n = 3;
type
TMatrix = array [1..n, 1..n] of integer;
var item, k, res: integer;
Matr: TMatrix;
procedure Input_Matr (var Matr: TMatrix);
var i, j: integer;
begin
writeln('Введите матрицу размерности ',n,' на ', n, ': ');
for i := 1 to n do
for j := 1 to n do
read(Matr[i, j]);
readln;
writeln(#10,'Ввод завершен.');
end;
procedure Input_Random(var Matr: TMatrix);
var ch: char; i, j: integer;
begin
write('Подтверждаете автоматический ввод элементов? (Y/N) -> ');
readln(ch);
if ch in ['Y','y','Н','н'] then
begin
randomize;
for i := 1 to n do
for j := 1 to n do
Matr[i, j] := random(21)-20;
end;
writeln(#10,'Ввод успешно завершен', #10);
end;
procedure Print_Matr(Matr: TMatrix);
var i, j: integer;
begin
writeln;
for i := 1 to n do
for j := 1 to n do
begin
write(Matr[i, j], space);
if j = n then writeln;
end;
end;
function No_Negatives(Matr: TMatrix; k: integer): boolean;
var i: integer; OK: boolean;
begin
i := k; OK := true;
while (i <= n) and OK do
if Matr[k, i] < 0 then OK := false
else inc(i);
No_Negatives := OK
end;
function Sum_El(Matr: TMatrix; k: integer): integer;
var i,result: integer;
begin
result := 0;
if No_Negatives(Matr,k) then
begin
for i := k to n do
result := result + Matr[k,i]
end
else result := 0;
Sum_El := result
end;
function Menu: byte;
const
MaxItem = 5;
var result:integer;
begin
writeln(#10,'Выберите какой-либо пункт меню:');
writeln(#10,'1 - Ввести новую матрицу;');
writeln('2 - Заполнить матрицу случайными числами;');
writeln('3 - Просмотреть текущую матрицу;');
writeln('4 - Сумма элементов в строках, не содерж. отрицательных элементов;');
writeln('5 - Минимум среди сумм элементов диагоналей,');
writeln(' параллельных главной диагонали;');
writeln('0 - Выход;');
write(#10,'Ваш выбор: -> ');
repeat
readln(result);
until result in [0..MaxItem];
menu := result
end;
begin{main}
repeat
item := menu;
case item of
1: Input_Matr(Matr);
2: Input_Random(Matr);
3: Print_Matr(Matr);
4: begin
for k := 1 to n do
begin
res := Sum_El(Matr, k);
if res <> 0 then writeln(#10,'Строка - ',k,', сумма элементов в ней = ',res);
end;
end;
end;
until item = 0;
end.