|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
14.04.2015, 19:10 | #1 (permalink) |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Если максимальный элемент квадратной матрицы находится выше главной диагонали...
Если максимальный элемент квадратной матрицы находится выше главной диагонали, транспонировать матрицу, иначе определить сумму элементов строки и столбца с номерами, равными индексам максимального элемента. Нужно перевести эту программу из Фортрана в Паскаль: !esli max vishe gl diagonali subroutine pp1(A,n,p,MAX,imax,jmax) dimension A(n,n) real A,MAX integer i,j,p,imax,jmax p=0 max=A(1,1) imax=1 jmax=1 do i=1,n,1 do j=1,n,1 if (A(i,j)>MAX) then MAX=A(i,j) imax=i jmax=j if (jmax>imax) then p=1 end if end if end do end do end !Transponirovat matrix subroutine pp2(A,n) dimension A(n,n) real A integer i,j do i=2,n do j=1,i-1 C=A(i,j) A(i,j)=A(j,i) A(j,i)=C end do end do end !symma elementov str i stlb s index MAX subroutine pp3(A,n,imax,jmax,S) dimension A(n,n) real A,S integer i,j,imax,jmax do j=1,n,1 s1=s1+A(imax,j) end do do i=1,n,1 s2=s2+A(i,jmax) end do s=s1+s2 end !glav modul real A,MAX,S integer i,j,p DATA A/9,1,1,2,3,4,6,7,8,4,5,1,1,1,1,1,1,1,1,1,1,1,2,1,1/ write(*,*)'isxodnaya matriza' write(*,36)((A(i,j),j=1,5),i=1,5) 36 format (5(1x,F5.1)) call pp1(A,5,p,MAX,imax,jmax) write(*,*)'MAX element=',MAX write(*,46)imax,jmax 46 format (1x,'Index MAX elementa=',1x,'nomer stroki',1x,I2,1x,'nomer stolbca',1x,I2) if (p==1) then call pp2(A,5) write(*,16)((A(i,j),j=1,5),i=1,5) 16 format (3x,'Transponirovannaya matrix'/(5(1x,F5.1))) else call pp3(A,5,imax,jmax,S) write(*,26)S 26 format (3x,'Symma elementov s index MAX elementa',1x,(1x,F5.1)) end if end |
14.04.2015, 19:10 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно, ваш вопрос уже получил решение на форуме Как определить максимальный ход диффузора? Hyper Jump - прыгаем все выше и выше Hyper Jump - прыгай выше и выше, собирая бонусы Максимальный апгрейд компа Мозилла не работает с главной страницей Яндекса |
15.04.2015, 10:24 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Тогда получите:
Код:
Const N=5; Var A,B:Array[1..N, 1..N] of Integer; i,j,Imax,Jmax,Amax,Sum:Integer; Begin Randomize; Sum:=0; Amax:=-1; Writeln('Matrix:'); for i:=1 to N do begin for j:=1 to N do begin A[i,j]:=Random(10); Write(A[i,j]:4); if A[i,j]>Amax then begin Amax:=A[i,j]; Imax:=i; Jmax:=j; end; end; writeln; end; writeln; writeln('Maximal element is A[',Imax,',',Jmax,'] = ',A[Imax,Jmax]); writeln; if Jmax>Imax then begin Writeln('Transposed matrix:'); for i:=1 to N do begin for j:=1 to N do begin B[i,j]:=A[j,i]; write(B[i,j]:4); end; writeln; end; end else begin for i:=1 to N do Inc(Sum,A[i,Jmax]); for j:=1 to N do Inc(Sum,A[Imax,j]); writeln('Sum = ',Sum); end; Readln End. |
15.04.2015, 19:28 | #5 (permalink) |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|