• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с написанием программы

  • Автор темы Автор темы kru
  • Дата начала Дата начала

kru

Новые
Регистрация
30 Ноя 2011
Сообщения
12
Реакции
0
Баллы
0
Помогите с написанием программы

соседями элемента А_ij в матрице назовем элементы А_kl с i-1<=k<=i+1, j-1<=l<=j+1, (k,l) не равны (i,j). операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы. построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
в сглаженной матрице найти сумму модулей элементов,расположенных ниже главной диагонали.


программа на паскале.желательно с комментариями.
заранее огромное спасибо)
 
Что делать с "бордюрными" и "угловыми" (A[1,j], A[10,j], A[i,1], A[i,10]) элементами, имеющими неполный набор соседей? Два варианта:
1. Усреднить столько соседей, сколько есть (напр. для "угловых" это всего 3).
2. Оставить такие элементы без изменения.
Уточните.
 
скорее первый вариант
 
скорее первый вариант
Тогда - пожалуйста. Исходная матрица задается генератором случайных чисел, потому что вводить сотню вещественных элементов - это, с моей точки зрения, полное опупение. 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.
 
огромное спасибо,помогли!)
 
Назад
Сверху