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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 05:57   #1
Ольчик
Пользователь
 
Аватар для Ольчик
 
Регистрация: 07.11.2008
Сообщений: 10
Вопрос Матрицы. Скажите что не так!!

Нужно найти количество отрицательных элементов ниже главной диагонали матрицы.
Скажите что не так в этой процедуре....
PHP код:
 procedure KOL(SG:TStringGridED2:TEdit; var ED1:TEdit);
var
i,j,k,nInteger;
rMAT;
begin
  k
:=0;
  for 
i:=1 to n do begin
    
for j:=1 to n do
      
r[i,j]:=StrToInt(SG.Cells[i-1,j-1]);
  
end;
for 
i:=2 to n do begin
    
for j:=1 to n do
      
begin
        
if r[i,j]<0 then
        k
:=k+1;
end;
  
ED1.Text:=IntToStr(k);
  
end;
  
end

Последний раз редактировалось Ольчик; 14.11.2008 в 06:59.
Ольчик вне форума Ответить с цитированием
Старый 14.11.2008, 07:30   #2
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

Код:
procedure KOL(SG:TStringGrid; ED2:TEdit; var ED1:TEdit); 
var 
i,j,k,n: Integer; 
r: MAT; 
begin 
  k:=0; 
  for i:=1 to n do begin 
    for j:=1 to n do 
      r[i,j]:=StrToInt(SG.Cells[i-1,j-1]); 
  end; 
for i:=2 to n do begin 
    for j:=1 to n do 
      begin 
        if (i>=J)and (r[i,j]<0) then 
        k:=k+1; 
end; 
  ED1.Text:=IntToStr(k); 
  end; 
  end;
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Старый 14.11.2008, 12:08   #3
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Зачем проверка лишнего условия?
Код:
procedure KOL(SG:TStringGrid; ED2:TEdit; var ED1:TEdit);
var
  i,j,k,n: Integer;
  r: MAT;
begin
  k := 0;
  for i := 1 to n do 
    for j := 1 to n do
      r[i, j] := StrToInt(SG.Cells[i-1, j-1]);

  // Используя этот цикл, вы однозначно просмотрите
  // только элементы, расположенные ниже гл. диагонали
  for i := 2 to n do 
    for j := 1 to i-1 do
      if r[i, j] < 0 then
        inc(k);

  ED1.Text := IntToStr(k);
end;

Последний раз редактировалось MalexG; 14.11.2008 в 12:17.
MalexG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скажите что за программа Bonjour? Ol'ga Софт 2 06.09.2008 23:05
Что то не так с переменными.. adwaer Помощь студентам 1 19.06.2008 08:42
Что в коде не так? Simply-Art Общие вопросы Delphi 3 08.07.2007 19:32
Скажите как сделать так, чтобы размер формы оставался фиксированным? Faramund Помощь студентам 2 20.03.2007 20:14
Что-то не так Radiofuck Помощь студентам 2 16.01.2007 22:06