Цитата:
Сообщение от Kosmos
2. Размерности массивов следует задать именованными константами.
Задание:
Дана целочисленная прямоугольная матрица. Определить:
1. Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрица¬тельный элемент.
2. Найти номер первого из столбцов, не содержащих ни одного положительного элемента.
|
CONST
N=8;
M=10;
VAR
A:ARRAY[1..N,1..M] of INTEGER;
ColNum,ColSum:ARRAY[1..M] of INTEGER;
i,j,Ncur,p,Number_Neg, Number_Pos:INTEGER;
BEGIN
Randomize;
FOR i:=1 TO N DO
FOR j:=1 TO M DO
A[i,j]:=Random(100)-50;
Number_Neg:=0;
FOR j:=1 TO M DO
BEGIN
p:=0;
i:=0;
REPEAT
INC(i);
IF A[i,j]<0 THEN p:=1;
UNTIL (p=1) OR (i=N);
IF p=1 THEN
BEGIN
INC(Number_Neg);
ColNum[Number_Neg]:=j;
ColSum[Number_Neg]:=0;
FOR i:=1 TO N DO
ColSum[Number_Neg]:=ColSum[Number_Neg]+A[i,j];
END;
END;
Number_Pos:=0;
j:=0;
REPEAT
INC(j);
p:=0;
FOR i:=1 TO N DO
IF A[i,j]>0 THEN p:=1;
IF p=0 THEN Number_Pos:=j;
UNTIL (p=0) OR (j=M);
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO M DO
Write(A[i,j]:4);
Writeln;
END;
Write('Column number ');
FOR i:=1 TO Number_Neg DO
Write(ColNum[i]:6);
Writeln;
Write(' Column Sums ');
FOR i:=1 TO Number_Neg DO
Write(ColSum[i]:6);
Writeln;
IF Number_Pos=0 THEN
WriteLn('The matrix contains no negative columns') ELSE
Writeln('First negative column number is ',Number_Pos:2);
ReadLn;
END.