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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2015, 12:56   #1
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию Значения со stringrid

не могу найти ошибку,проблема заключается в том что в переменную L значения со stringrid умножаются на 2 по непонятной причине.
Код:
 if (form1.rg1.itemindex=3) and (rg2.itemindex=1) then
    begin
      if strtofloat(edt2.text)<strtofloat(edt3.text) then
      begin
        if rg1.itemindex=0 then
        begin
          for i:=1 to t do
          for j:=1 to t do
          d[i,j]:=-strtoint(strngrd5.cells[j-1,i-1]);
          for i:=1 to t do
          for j:=1 to t do
          c[i,j]:=strtoint(strngrd2.cells[j-1,i-1])
        end
        else
        if rg1.itemindex=1 then
        begin
          for i:=1 to t do
          for j:=1 to t do
          d[i,j]:=strtoint(strngrd5.cells[j-1,i-1]);
          for i:=1 to t do
          for j:=1 to t do
          c[i,j]:=-strtoint(strngrd2.cells[j-1,i-1])
        end;
          for i:=1 to t do
          for j:=1 to t do
          x[i,j]:=0;
          L:=0;
          VengMethod(D, X, L);
          for i:=1 to t do
          for j:=1 to t do
          strngrd3.Cells[j-1,i-1]:=IntToStr(x[i,j]);
          for i:=1 to t do
          begin
             for j:=1 to t do
           if StrToInt(strngrd3.cells[j-1,i-1])=1 then
           l:=l+strtoint(strngrd4.cells[j-1,i-1]);
          end;
          edt1.Text:=floatToStr(L);
Вероника92 вне форума Ответить с цитированием
Старый 08.02.2015, 13:48   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Offtop. Для всех языков есть форматтеры исходного кода. Для IDE Delphi существуют плагины GExpert (бесплатные официально). Может быть у IDE встроенный форматтер. У меня FreePascal и пользуюсь JCF, которым и Delphi можно обработать. Иначе тяжело читать и искать ошибки.

На первый взгляд видно:
1. При rg1.itemindex=0 и 1 заполняются массивы d и c. А как дела при других значениях.
2. Переменная L упомянута в 4 местах. Причём к моменту суммирования с ячейками stringgrd4 глазами значение не определяется. Уточнить можно только отладчиком.
3. Как объявлена L? Видно присвоение 0, отправка в VengMethod, сложение с целыми, а потом бац edt1.Text:=floatToStr(L);
А так ничего криминального.
FPaul вне форума Ответить с цитированием
Старый 08.02.2015, 14:33   #3
Вероника92
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 35
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
Offtop. Для всех языков есть форматтеры исходного кода. Для IDE Delphi существуют плагины GExpert (бесплатные официально). Может быть у IDE встроенный форматтер. У меня FreePascal и пользуюсь JCF, которым и Delphi можно обработать. Иначе тяжело читать и искать ошибки.

На первый взгляд видно:
1. При rg1.itemindex=0 и 1 заполняются массивы d и c. А как дела при других значениях.
2. Переменная L упомянута в 4 местах. Причём к моменту суммирования с ячейками stringgrd4 глазами значение не определяется. Уточнить можно только отладчиком.
3. Как объявлена L? Видно присвоение 0, отправка в VengMethod, сложение с целыми, а потом бац edt1.Text:=floatToStr(L);
А так ничего криминального.
unit2 алгоритм 2, в остальных пунктах все работало, а тут раз и все на 2 умножается(((
Вложения
Тип файла: zip 3.zip (500.0 Кб, 9 просмотров)
Вероника92 вне форума Ответить с цитированием
Старый 08.02.2015, 15:06   #4
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

У меня нет Delphi. Придётся подождать кого-нибудь.
А что значит умножается? В VengMethod в L что-то суммируется, потом в Unit2 что-то добавляется. Может одно действие лишнее.
Ещё - переменная L - глобальная. Может кто-то дополнительно ей "помогает".
Попробуй поставить точки останова на интересуущих местах и посмотри на значения L.
FPaul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Stringrid SashaALT C++ Builder 1 28.05.2014 13:11
печать из StrinGrid SPD Общие вопросы Delphi 2 29.02.2012 16:34
Stringrid и Listbox ytl09 Помощь студентам 0 30.01.2011 20:06
объясните StrinGrid magnat1991 Общие вопросы C/C++ 9 26.04.2010 14:50
StrinGrid Настенька..Блонди Общие вопросы Delphi 2 15.08.2009 16:45