Begin
S:=0; {вычисление суммы элементов побочной диагонали}
For i := 1 to N do S := S+A[i, N+1-i];
If S<>Standard then Flag := FALSE;
end;
End;
{--------------------------------------------------------}
BEGIN
InputOutput; {Вызов процедуры ввода-вывода }
MagicOrNot(Flag); {Вызов процедуры решения задачи }
If Flag then WriteLn('Это магический квадрат.')
else WriteLn('Это не магический квадрат.');
ReadLn
END.
QBasic
CLS : INPUT "Количество строк и столбцов - ", N : DIM A(N, N)
FOR i = 1 TO N
FOR j = 1 TO N
PRINT "A(" ; i ; ", " ; j ; ") = "; : INPUT A(i, j)
NEXT j
NEXT i : CLS
PRINT "Исходная матрица: " : PRINT
FOR i = 1 TO N
FOR j = 1 TO N
PRINT A(i, j);
NEXT j : PRINT
NEXT i : PRINT
Standard = 0 'вычисление суммы-эталона Standard
FOR i = 1 TO N
Standard = Standard + A(i, i)
NEXT i
Flag = 1 : i = 1
WHILE (i <= N) AND (Flag = 1) 'вычисление сумм элементов строк
S = 0
FOR j = 1 TO N
S = S + A(i, j)
NEXT j
IF S <> Standard THEN Flag = 0 ELSE i = i + 1
WEND
j = 1
WHILE (j <= N) AND (Flag = 1) 'вычисление сумм элементов столбцов
S = 0
FOR i = 1 TO N
S = S + A(i, j)
NEXT i
IF S <> Standard THEN Flag = 0 ELSE j = j + 1
WEND
IF Flag = 1 THEN
S = 0 'вычисление суммы элементов побочной диагонали
FOR i = 1 TO N
S = S + A(i, N + 1 - i)
NEXT i
END IF
IF S <> Standard THEN Flag = 0
IF Flag = 1 THEN PRINT "Это магический квадрат."
ELSE PRINT "Это не магический квадрат."
END IF : PRINT
END
Пример 6.4. Дана матрица A(N, N). Если хотя бы один элемент строки матрицы отрицателен, то все элементы этой строки заменить нулями.
Тест
| Данные
| Результат
|
| N
| Матрица А
| Матрица А
|
|
|
|
|