08.05.2012, 14:08 | #1 (permalink) |
Member
Регистрация: 30.11.2011
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с написанием программы
в сглаженной матрице найти сумму модулей элементов,расположенных ниже главной диагонали. программа на паскале.желательно с комментариями. заранее огромное спасибо) |
08.05.2012, 14:08 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме люди обсуждали что то схожее, посмотрите Помогите с написанием программы на Pascal Помогите с написанием программы на С++ Помогите пожалуйста с написанием программы |
08.05.2012, 21:09 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Что делать с "бордюрными" и "угловыми" (A[1,j], A[10,j], A[i,1], A[i,10]) элементами, имеющими неполный набор соседей? Два варианта:
1. Усреднить столько соседей, сколько есть (напр. для "угловых" это всего 3). 2. Оставить такие элементы без изменения. Уточните. |
16.05.2012, 13:07 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Тогда - пожалуйста. Исходная матрица задается генератором случайных чисел, потому что вводить сотню вещественных элементов - это, с моей точки зрения, полное опупение. Q - количество соседей каждого элемента.
Код:
Const N=10; Var A,B:Array[1..N,1..N] of Real; i,j,k,m,Kmin,Kmax,Mmin,Mmax,Q:Byte; Sum:Real; Begin Randomize; For i:=1 to N do begin For j:=1 to N do begin A[i,j]:=Random*10-5; Write(A[i,j]:7:3); B[i,j]:=0; end; writeln; end; Writeln; For i:=1 to N do begin For j:=1 to N do begin Q:=0; If i=1 then Kmin:=i else Kmin:=i-1; If i=N then Kmax:=i else Kmax:=i+1; If j=1 then Mmin:=j else Mmin:=j-1; If j=N then Mmax:=j else Mmax:=j+1; for k:=Kmin to Kmax do for m:=Mmin to Mmax do if Not((k=i) and (m=j)) then begin B[i,j]:=B[i,j]+A[k,m]; Inc(Q); end; B[i,j]:=B[i,j]/Q; Write(B[i,j]:7:3); end; Writeln; end; Sum:=0; For i:=2 to N do For j:=1 to i-1 do Sum:=Sum+Abs(B[i,j]); Writeln('Sum = ',Sum:0:3); Readln; End. |
22.05.2012, 22:33 | #5 (permalink) |
Member
Регистрация: 30.11.2011
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
огромное спасибо,помогли!)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|