|
|
Опции темы | Опции просмотра |
15.04.2015, 23:18 | #1 (permalink) |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Если целочисленная квадратная матрица симметрична относительно главной диагонали...
Если целочисленная квадратная матрица симметрична относительно главной диагонали, обнулить все элементы,лежащие выше главной диагонали.и определить сумму элементов, лежащих ниже главной диагонали Вот на фортране: !simmetrichna li matriza logical function PP1(A,n) dimension A(n,n) integer I,J,A logical fl fl=.true. I=1 do while (I<=n-1.and.fl) J=I+1 do while (J<=n.and.fl) if (A(I,J)/=A(J,I)) then fl=.false. end if J=J+1 end do I=I+1 end do PP1=fl write (,) fl end !obnylit vse elementi vishe glavnoi diagonali subroutine PP2(A,n) dimension A(n,n) integer I,J,A do I=1,n-1 do J=I+1,n A(I,J)=0 end do end do end !naiti symmy elementov nizhe glavnoi diagonali subroutine PP3(A,n,s) dimension A(n,n) integer I,J,A,s s=0 do J=1,n-1 do I=J+1,n s=s+A(I,J) end do end do end dimension A(5,5) integer I,J,A,s logical fl,PP1 data A/1,2,3,1,3,2,3,4,9,4,3,4,5,8,5,1,9,8,7,6,3,4,5,6,1/ write (,) 'ishod matriza' write (*,36) ((A(I,J),J=1,5),I=1,5) 36 format (5(1x,I3)) fl= PP1(A,5) write (,) fl if (fl) then write (,) 'matriza simmetrichna' call PP2(A,5) write (*,26) ((A(I,J),J=1,5),I=1,5) 26 format (1x,'izmen matriza'/5(1x,I3)) call PP3 (A,5,s) write (*,16) s 16 format (1x,'s=',I4) else write (,) 'matriza ne simmetrichna' end if end |
15.04.2015, 23:18 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Попробуйте упростить решение проблемы, почитайте схожие топики Если максимальный элемент квадратной матрицы находится выше главной диагонали... Delphi. Квадратная матрица. Задача Квадратная матрица Дана целочисленная матрица W 4×4, вычислить сумму ее элементов, лежащих ниже главной Дана квадратная матрица А из N элементов. Получить из нее одномерный массив, язык C++ Относительно мощный конфиг |
16.04.2015, 10:49 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Const N=5; Type Matr=Array[1..N, 1..N] of Integer; Var A:Matr; i,j,k,Sum:Integer; Function Symm(Q:Matr):Boolean; var i,j:Integer; bu:boolean; begin i:=0; bu:=TRUE; repeat Inc(i); j:=0; repeat Inc(j); bu:=Q[i,j]=Q[j,i]; until bu=FALSE or (j=N); until bu=FALSE or (i=N); Symm:=bu; end; Begin for i:=1 to N do for j:=1 to N do begin write('A[',i,',',j,'] = '); readln(A[i,j]); end; Writeln; Writeln('Initial matrix:'); for i:=1 to N do begin for j:=1 to N do write(A[i,j]:4); writeln; end; Writeln; If Symm(A) then begin Sum:=0; Writeln('New matrix:'); for i:=1 to N do begin for j:=1 to N do begin if j>i then A[i,j]:=0; if j<i then Inc(Sum,A[i,j]); write(A[i,j]:4); end; writeln; end; Writeln; Writeln('Sum = ',Sum); end else Writeln('Matrix is asymmetric'); Readln End. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|