Показать сообщение отдельно
Старый 21.03.2015, 14:08   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Еще попробуйте такой вариант. Он, в общем, эквивалентен первому, но более явно задана совместимость типов. Это по идее дожен даже заср АВС сожрать:
Код:
Program zam;
Const n=3;

Type mass=array[1..n] of real;
     matr=array[1..n] of mass;

Function sredarifm(Q:matr):real;
 var
  summ:real;
  i,j:integer;
 Begin
    Summ:=0;
     Begin
      for i:=1 to n do
       for j:=1 to n do
         summ:=summ+Q[i,j];
     end;
    sredarifm:=summ/(n*n);
 end; //функция расчёта среднего арифметического матрицы

Procedure zamena(T:real; var p:mass );
 var i,k:integer;
  Begin
   k:=0;
   for i:=1 to n do
    if abs(p[i])<T then
     begin
      p[i]:=0;
      k:=k+1;
     end;
   writeln;
   for i:=1 to n do
    write(p[i]:8:2);
   Write('  Число замен в данной строке : ',k);
  end; // написал процедуру, считаем количество элементов массива р модули которых больше меньше или равны r,


Var
  i,j:integer;
  w:real;
  A:matr;

Begin
 Write('Введите контрольную величину W : ');
 Readln(w);
 Writeln('Заполните матрицу А: ');
 for i:=1 to n do
  for j:=1 to n do
   begin
    write('A[',i,',',j,']= ');
    readln(A[i][j]);
   end;
 writeln;
 for i:=1 to n do
  begin
   for j:=1 to n do write(A[i][j]:8:2);
   writeln;
  end;

 for i:=1 to n do zamena(w,A[i]);

 writeln;
 writeln;

 for i:=1 to n do
  begin
   for j:=1 to n do write(A[i][j]:8:2);
   writeln;
  end;
 writeln;

 Writeln('Среднее арифметическое полученной матрицы В равно : ', sredarifm(A):0:2);
 Readln
end.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070