Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 13:11   #1
Absent
Пользователь
 
Регистрация: 18.11.2007
Сообщений: 67
Стрелка Работа с матрицей

Дана квадратная матрица. Увеличить все элементы строки с минимальной суммой элементов на среднее арифметическое элементов матрицы, лежащих выше главной диагонал.

Программу написал,но работает неправльно. Помогите исправить программу пожалуйста


Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
n=3;
Type matr=array[1..n,1..n] of real;
mass=array[1..n] of real;
Var
A:matr;
sum:mass;
b,SrAr,min:real;
i,j,k:integer;


Procedure CTPOKA(Var k:integer);
var
i:integer;
j:integer;
begin
for i:=1 to n do
for J:=1 to n do
  begin
  if J=1 then sum[i]:=0;
  sum[i]:=A[i,j]+sum[i];
  end;
min:=sum[1];
for i:=1 to n do
if min<sum[i] then K:=i;
end;



Procedure  CREDN(Var SrAr:real );
Var
m,i,j:integer;
begin
b:=0;
m:=0;
for i:=1 to n do
for j:=1 to n do
if J>i then
       begin
       b:=b+A[i,j];
       m:=m+1;
       end;
SrAr:=b/m;
end;


procedure uvelichenie(Var A:matr);
var
J:integer;
begin
for j:=1 to n do
A[k,j]:=A[k,j]+srar;
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('ishodnaya matrica');
for i:=1 to n do
for j:=1 to n do
  begin
  write(A[i,j]:2:1,'  ');
  if J=n then
         begin
         writeln;
         writeln;
         end;
  end;
CTPOKA(k);
CREDN(srar);
uvelichenie(A);
writeln('poluchenaya matrica');
for i:=1 to n do
for j:=1 to n do
  begin
  write(A[i,j]:2:1,'   ');
  if J=n then
         begin
         writeln;
         writeln;
         end;
  end;
writeln(srar:2:3);
readln;
end.
Absent вне форума Ответить с цитированием
Старый 24.05.2008, 13:33   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Три недочёта (помечены коментом)
Код:
program Project2;   
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
n=3;
Type matr=array[1..n,1..n] of real;   
mass=array[1..n] of real;
Var   
A:matr;
sum:mass;
b,SrAr,min:real;   
i,j,k:integer;
  
Procedure CTPOKA(Var k:integer);   
var   
i:integer;
j:integer;   
begin   
for i:=1 to n do
for J:=1 to n do
  begin   
  if J=1 then sum[i]:=A[i,j]; //раз - первый элемент не должн зануляться
  sum[i]:=A[i,j]+sum[i];
  end;
min:=sum[1];
K:=1; //два - про К забываем
for i:=1 to n do   
if min>sum[i] then K:=i; //три - знак нетуда
end;

Procedure  CREDN(Var SrAr:real );   
Var
m,i,j:integer;   
begin
b:=0;
m:=0;
for i:=1 to n do
for j:=1 to n do
if J>i then
       begin
       b:=b+A[i,j];
       m:=m+1;
       end;
SrAr:=b/m;
end;
  
procedure uvelichenie(Var A:matr);
var   
J:integer;
begin   
for j:=1 to n do
A[k,j]:=A[k,j]+srar;   
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('ishodnaya matrica');   
for i:=1 to n do
for j:=1 to n do   
  begin   
  write(A[i,j]:2:1,'  ');
  if J=n then   
         begin   
         writeln;
         writeln;   
         end;
  end;
CTPOKA(k);
CREDN(srar);
uvelichenie(A);
writeln('poluchenaya matrica');
for i:=1 to n do
for j:=1 to n do
  begin
  write(A[i,j]:2:1,'   ');
  if J=n then
         begin
         writeln;
         writeln;
         end;
  end;
writeln(srar:2:3);
readln;
end.
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с матрицей Panda Помощь студентам 1 06.07.2008 16:42
помогите с матрицей Panda Помощь студентам 1 01.07.2008 11:31
Работа с матрицей Absent Помощь студентам 3 17.05.2008 22:20
Помогите с матрицей Zolotce Помощь студентам 4 21.04.2008 14:15
проблема с матрицей kommunist Помощь студентам 8 14.10.2007 19:29