Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 358

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста разобраться в ошибке.
ошибка EConvertError with message"5870601486"is not a valid integer value, как я поняла это значение превышает максимальное возможное целое число, как мне задать это число?

Alinka27 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Alinka27 (статус: Посетитель)
Вопрос отправлен: 1 июня 2011, 18:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Очевидно, что это число (587060148610 = 15DEA450E16) занимает 33 бита. Тип Integer в 32-битных платформах - это таки 32 бита или 4 байта. Так что для таких преобразований следует пользоваться переменными с типом Int64 и функциями StrToInt64() и/или TryStrToInt64().

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 1 июня 2011, 18:59


Мини-форум вопроса

Всего сообщений: 83; последнее сообщение — 2 июня 2011, 08:11; участников в обсуждении: 4.

Страницы: [« Предыдущая] [1] [2] [3] [4] [5] [Следующая »]

min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:31 [#21]:

Цитата (Alinka27):

Там не написано, после нажатия на кнопку появляется ошибка.

Ну поставь ты брейкпойнт на первую строку обработчика ОнКлык чёртовой кнопки, нажми потом на неё и дальше по шажочкам до возникновения ошибки.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:32 [#22]:

Да, и покажи, наконец, код обработчика, ёпэрэсэтэ! А то мы тут так до пенсии гадать будем.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:34 [#23]:

Цитата (Alinka27):

Кстати, это у меня кнопка тест, но расчеты выполняется после нажатия на другую кнопку.

Нужен код обработчика именно той кнопки, при нажатии на которую вываливается исключение.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:35 [#24]:

Цитата (Alinka27):

он элементарный!=)

АААААААААААААААААААААААААААААААААААААААААААААА!!!!!!!!!!!
МАМА, РОДИ МЕНЯ ОБРАТНО!!!!!!!!!!!!!!!!!

З.Ы. Ушёл блевать в сортир. Щас вернусь. И пойду в магаз за водкой.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 1 июня 2011, 19:36 [#25]:

procedure TForm1.Button1Click(Sender: TObject);
var  // a: array [0..2,1..25] of double;
j: integer;
s,k: string;
 summ11,summ12,summ21,summ22,summ31,summ32,razn13,razn23,razn23t,razn33,razn33t,razn,raznt,summ11t,summ12t,summ21t,summ22t,summ31t,summ32t,razn13t,summ11km,summ11kmo,summ12km,summ12kmo,summ13km,summ13kmo,summDC,ostatokDC,summDCt,ostatokDCt,ChDPopr,ChDPipr,ChDPfpr:
integer;
begin
summ11:=0;
summ12:=0;
summ21:=0;
summ22:=0;
summ31:=0;
summ32:=0;
summ11t:=0;
summ12t:=0;
summ21t:=0;
summ22t:=0;
summ31t:=0;
summ32t:=0;
summ11km:=0;
summ11kmo:=0;
summ12km:=0;
summ12kmo:=0;
summ13km:=0;
summ13kmo:=0;
for j:=3 to {stringgrid1.rowCount-1} 5 do
  begin
  if StringGrid1.Cells[2,5]<>'' then
 
Summ11:=StrToInt(StringGrid1.Cells[2,3])+StrToInt(StringGrid1.Cells[2,4])+StrToInt(StringGrid1.Cells[2,5]){+StrToInt(StringGrid1.Cells[2,6])};
 
   end;
   for j:=7 to 15 do
  begin
  if StringGrid1.Cells[2,15]<>'' then
 
Summ12:=StrToInt(StringGrid1.Cells[2,7])+StrToInt(StringGrid1.Cells[2,8])+StrToInt(StringGrid1.Cells[2,9])+StrToInt(StringGrid1.Cells[2,10])+StrToInt(StringGrid1.Cells[2,11])+StrToInt(StringGrid1.Cells[2,12])+StrToInt(StringGrid1.Cells[2,13])+StrToInt(StringGrid1.Cells[2,14])+StrToInt(StringGrid1.Cells[2,15]);
   Razn13:=summ11-summ12;
          end;
  for j:=19 to {stringgrid1.rowCount-1} 22 do
  begin
  if StringGrid1.Cells[2,22]<>'' then
 
Summ21:=StrToInt(StringGrid1.Cells[2,19])+StrToInt(StringGrid1.Cells[2,20])+StrToInt(StringGrid1.Cells[2,21])+StrToInt(StringGrid1.Cells[2,22])+StrToInt(StringGrid1.Cells[2,23])+StrToInt(StringGrid1.Cells[2,24])+StrToInt(StringGrid1.Cells[2,25]);
 
   end;
        for j:=27 to {stringgrid1.rowCount-1} 32 do
  begin
  if StringGrid1.Cells[2,32]<>'' then
 
Summ22:=StrToInt(StringGrid1.Cells[2,27])+StrToInt(StringGrid1.Cells[2,28])+StrToInt(StringGrid1.Cells[2,29])+StrToInt(StringGrid1.Cells[2,30])+StrToInt(StringGrid1.Cells[2,31])+StrToInt(StringGrid1.Cells[2,32]);
     razn23:=summ21-summ22;
   end;
 
        for j:=36 to stringgrid1.rowCount-1  do
  begin
  if StringGrid1.Cells[2,36]<>'' then
    Summ31:=StrToInt(StringGrid1.Cells[2,36]);
       end;
       for j:=38 to 39  do
  begin
  if StringGrid1.Cells[2,39]<>'' then
    Summ32:=StrToInt(StringGrid1.Cells[2,38])+StrToInt(StringGrid1.Cells[2,39]);
     razn33:=summ31-summ32;
     razn:=razn13+razn23+razn33;
       end;
 
 
       for j:=3 to {stringgrid1.rowCount-1} 5 do
  begin
  if StringGrid1.Cells[3,5]<>'' then
 
Summ11t:=StrToInt(StringGrid1.Cells[3,3])+StrToInt(StringGrid1.Cells[3,4])+StrToInt(StringGrid1.Cells[3,5]){+StrToInt(StringGrid1.Cells[2,6])};
 
   end;
   for j:=7 to 15 do
  begin
  if StringGrid1.Cells[3,15]<>'' then
 
Summ12t:=StrToInt(StringGrid1.Cells[3,7])+StrToInt(StringGrid1.Cells[3,8])+StrToInt(StringGrid1.Cells[3,9])+StrToInt(StringGrid1.Cells[3,10])+StrToInt(StringGrid1.Cells[3,11])+StrToInt(StringGrid1.Cells[3,12])+StrToInt(StringGrid1.Cells[3,13])+StrToInt(StringGrid1.Cells[3,14])+StrToInt(StringGrid1.Cells[3,15]);
   Razn13t:=summ11t-summ12t;
          end;
  for j:=19 to {stringgrid1.rowCount-1} 22 do
  begin
  if StringGrid1.Cells[3,22]<>'' then
 
Summ21t:=StrToInt(StringGrid1.Cells[3,19])+StrToInt(StringGrid1.Cells[3,20])+StrToInt(StringGrid1.Cells[3,21])+StrToInt(StringGrid1.Cells[3,22])+StrToInt(StringGrid1.Cells[3,23])+StrToInt(StringGrid1.Cells[3,24])+StrToInt(StringGrid1.Cells[3,25]);
 
   end;
        for j:=27 to {stringgrid1.rowCount-1} 32 do
  begin
  if StringGrid1.Cells[3,32]<>'' then
 
Summ22t:=StrToInt(StringGrid1.Cells[3,27])+StrToInt(StringGrid1.Cells[3,28])+StrToInt(StringGrid1.Cells[3,29])+StrToInt(StringGrid1.Cells[3,30])+StrToInt(StringGrid1.Cells[3,31])+StrToInt(StringGrid1.Cells[3,32]);
     razn23t:=summ21t-summ22t;
   end;
 
        for j:=36 to stringgrid1.rowCount-1  do
  begin
  if StringGrid1.Cells[3,36]<>'' then
    Summ31t:=StrToInt(StringGrid1.Cells[3,36]);
       end;
       for j:=38 to 39  do
  begin
  if StringGrid1.Cells[3,39]<>'' then
    Summ32t:=StrToInt(StringGrid1.Cells[3,38])+StrToInt(StringGrid1.Cells[3,39]);
     razn33t:=summ31t-summ32t;
     raznt:=razn13t+razn23t+razn33t;
       end;
 
 
      for j:=2 to {stringgrid1.rowCount-1} 8 do
  begin
  if StringGrid2.Cells[1,8]<>'' then
 
Summ11km:=StrToInt(StringGrid2.Cells[1,2])+StrToInt(StringGrid2.Cells[1,3])+StrToInt(StringGrid2.Cells[1,4])+StrToInt(StringGrid2.Cells[1,5])+StrToInt(StringGrid2.Cells[1,6])+StrToInt(StringGrid2.Cells[1,7])+StrToInt(StringGrid2.Cells[1,8]);
 
   end;
 
      for j:=2 to {stringgrid1.rowCount-1} 8 do
  begin
  if StringGrid2.Cells[2,8]<>'' then
 
Summ11kmo:=StrToInt(StringGrid2.Cells[2,2])+StrToInt(StringGrid2.Cells[2,3])+StrToInt(StringGrid2.Cells[2,4])+StrToInt(StringGrid2.Cells[2,5])+StrToInt(StringGrid2.Cells[2,6])+StrToInt(StringGrid2.Cells[2,7])+StrToInt(StringGrid2.Cells[2,8]);
 
   end;
         for j:=11 to {stringgrid1.rowCount-1} 13 do
  begin
  if StringGrid2.Cells[1,13]<>'' then
    Summ12km:=StrToInt(StringGrid2.Cells[1,11])+StrToInt(StringGrid2.Cells[1,12])+StrToInt(StringGrid2.Cells[1,13]);
 
   end;
 
 
    for j:=11 to {stringgrid1.rowCount-1} 13 do
  begin
  if StringGrid2.Cells[2,13]<>'' then
    Summ12kmo:=StrToInt(StringGrid2.Cells[2,11])+StrToInt(StringGrid2.Cells[2,12])+StrToInt(StringGrid2.Cells[2,13]);
 
   end;
    for j:=16 to {stringgrid1.rowCount-1} 19 do
  begin
  if StringGrid2.Cells[1,19]<>'' then
 
Summ13km:=StrToInt(StringGrid2.Cells[1,16])+StrToInt(StringGrid2.Cells[1,17])+StrToInt(StringGrid2.Cells[1,18])+StrToInt(StringGrid2.Cells[1,19]);
 
   end;
 
 
    for j:=16 to {stringgrid1.rowCount-1} 19 do
  begin
  if StringGrid2.Cells[2,19]<>'' then
 
Summ13kmo:=StrToInt(StringGrid2.Cells[2,16])+StrToInt(StringGrid2.Cells[2,17])+StrToInt(StringGrid2.Cells[2,18])+StrToInt(StringGrid2.Cells[2,19]);
 
   end;
  s:=Edit1.Text;
   k:=Edit2.Text;
   summDC:=razn13+razn23+razn33;
   ostatokDC:=summDC+StrToInt(s);
   summDCt:=razn13t+razn23t+razn33t;
   ostatokDCt:=summDCt+StrToInt(k);
 
  { if (strtoint(stringgrid1.cells[2,16])>=0) and (strtoint(stringgrid1.cells[2,33])<0) and
(strtoint(stringgrid1.cells[2,40])<0) then begin
  Memo1.Text:='&#213;&#238;&#240;&#238;&#248;&#229;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
{yslovie 1}
{
end
else if (strtoint(stringgrid1.cells[2,16])>=0) and (strtoint(stringgrid1.cells[2,33])<0) and
(strtoint(stringgrid1.cells[2,40])>=0) then begin
Memo1.Text:='&#205;&#238;&#240;&#236;&#224;&#235;&#252;&#237;&#238;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
{yslovie 2}
{end
else if (strtoint(stringgrid1.cells[2,16])<0) and (strtoint(stringgrid1.cells[2,33])>=0) and
(strtoint(stringgrid1.cells[2,40])>=0) then begin
Memo1.Text:='&#202;&#240;&#232;&#231;&#232;&#241;&#237;&#238;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
end ;
             }
  //  ChDPopr:=strtoint(stringgrid1.cells[2,3])+strtoint(stringgrid1.cells[2,4])+strtoint(stringgrid1.cells[2,5]);
Stringgrid1.Cells[2,16]:=IntToStr(razn13);
Stringgrid1.Cells[2,2]:=IntToStr(summ11);
Stringgrid1.Cells[2,6]:=IntToStr(summ12);
Stringgrid1.Cells[2,33]:=IntToStr(razn23);
Stringgrid1.Cells[2,18]:=IntToStr(summ21);
Stringgrid1.Cells[2,26]:=IntToStr(summ22);
Stringgrid1.Cells[2,40]:=IntToStr(razn33);
Stringgrid1.Cells[2,35]:=IntToStr(summ31);
Stringgrid1.Cells[2,37]:=IntToStr(summ32);
StringGrid1.Cells[2,41]:=IntToStr(razn);
Stringgrid1.Cells[3,16]:=IntToStr(razn13);
Stringgrid1.Cells[3,2]:=IntToStr(summ11t);
Stringgrid1.Cells[3,6]:=IntToStr(summ12t);
Stringgrid1.Cells[3,33]:=IntToStr(razn23t);
Stringgrid1.Cells[3,18]:=IntToStr(summ21t);
Stringgrid1.Cells[3,26]:=IntToStr(summ22t);
Stringgrid1.Cells[3,40]:=IntToStr(razn33t);
Stringgrid1.Cells[3,35]:=IntToStr(summ31t);
Stringgrid1.Cells[3,37]:=IntToStr(summ32t);
StringGrid1.Cells[3,41]:=IntToStr(raznt);
Edit3.Text:=IntToStr(ostatokDC);
Edit4.Text:=IntToStr(ostatokDCt);
 
StringGrid2.Cells[1,9]:=IntToStr(summ11km);
StringGrid2.Cells[2,9]:=IntToStr(summ11kmo);
StringGrid2.Cells[1,14]:=IntToStr(summ12km);
StringGrid2.Cells[2,14]:=IntToStr(summ12kmo);
StringGrid2.Cells[1,20]:=IntToStr(summ13km);
StringGrid2.Cells[2,20]:=IntToStr(summ13kmo);
           end;
Alinka27

Alinka27 (статус: Посетитель), 1 июня 2011, 19:37 [#26]:

Блин, я уже боюсь что-то писать, я же не эксперт, как вы.Я чайник в программировании
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:38 [#27]:

Нихрена не пойму, а зачем тебе локальный массив "а", а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 1 июня 2011, 19:41 [#28]:

min@y™: Я же убрала, "//"
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:44 [#29]:

Цитата (Alinka27):

Блин, я уже боюсь что-то писать, я же не эксперт, как вы.Я чайник в программировании

Ой, мля, это просто ПИПЕЦ!!!!1111 Особенно 2-й кусок! Не, это не пипец, это ЖОПА! Нет, это не просто жопа! Это ЖОПА ИНДИЙСКОГО СЛОНА!!!!!!!1111
Теперь я понимаю, почему код был такой секретный, ога!
Закройте мне веки!!!111

Проблевался. Теперь по делу.
Посмотри внимательно, у тебя переменные имеют тип Integer, и используешь ты функции StrToInt(). Значит, всё-таки, мой телепатор меня не подвёл, и в своём ответе я всё написал правильно.

Пока я добрый, скажи, что должна делать твоя программа. Думаю, что смогу упростить твой "код" (бууэээ) и сократить его раз в дцать.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:45 [#30]:

facepalm

Ваш код протух!

Рефакторинг не сработает!

Чтение взрывает мозг!
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:45 [#31]:

Цитата (min@y™):

Нихрена не пойму, а зачем тебе локальный массив "а", а?

Цитата (Alinka27):

min@y™: Я же убрала, "//"

Я имел в виду 1-й "кусочек".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:45 [#32]:

Сейчас будет ответ не бойтесь.
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:46 [#33]:

Цитата (Gooddy):

Рефакторинг не сработает!
Чтение взрывает мозг!

Естественно, не сработает. Я и не предлагаю реfuckторингом заниматься. Я предлагаю написать прогу с нуля.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Alinka27

Alinka27 (статус: Посетитель), 1 июня 2011, 19:48 [#34]:

провести расчет, со значениями, которые в кнопке тест!Расчет проводится по схеме, которая ИНДИЙСКАЯ ЖОПА!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:48 [#35]:

procedure TForm1.Button1Click(Sender: TObject);
var  // a: array [0..2,1..25] of double;
j: integer;
s,k: string;
 summ11,summ12,summ21,summ22,summ31,summ32,razn13,razn23,razn23t,razn33,razn33t,razn,raznt,summ11t,summ12t,summ21t,summ22t,summ31t,summ32t,razn13t,summ11km,summ11kmo,summ12km,summ12kmo,summ13km,summ13kmo,summDC,ostatokDC,summDCt,ostatokDCt,ChDPopr,ChDPipr,ChDPfpr:
double;
begin
summ11:=0;
summ12:=0;
summ21:=0;
summ22:=0;
summ31:=0;
summ32:=0;
summ11t:=0;
summ12t:=0;
summ21t:=0;
summ22t:=0;
summ31t:=0;
summ32t:=0;
summ11km:=0;
summ11kmo:=0;
summ12km:=0;
summ12kmo:=0;
summ13km:=0;
summ13kmo:=0;
for j:=3 to {stringgrid1.rowCount-1} 5 do
  begin
  if StringGrid1.Cells[2,5]<>'' then
 
Summ11:=StrToFloat(StringGrid1.Cells[2,3])+StrToFloat(StringGrid1.Cells[2,4])+StrToFloat(StringGrid1.Cells[2,5]){+StrToFloat(StringGrid1.Cells[2,6])};
 
   end;
   for j:=7 to 15 do
  begin
  if StringGrid1.Cells[2,15]<>'' then
 
Summ12:=StrToFloat(StringGrid1.Cells[2,7])+StrToFloat(StringGrid1.Cells[2,8])+StrToFloat(StringGrid1.Cells[2,9])+StrToFloat(StringGrid1.Cells[2,10])+StrToFloat(StringGrid1.Cells[2,11])+StrToFloat(StringGrid1.Cells[2,12])+StrToFloat(StringGrid1.Cells[2,13])+StrToFloat(StringGrid1.Cells[2,14])+StrToFloat(StringGrid1.Cells[2,15]);
   Razn13:=summ11-summ12;
          end;
  for j:=19 to {stringgrid1.rowCount-1} 22 do
  begin
  if StringGrid1.Cells[2,22]<>'' then
 
Summ21:=StrToFloat(StringGrid1.Cells[2,19])+StrToFloat(StringGrid1.Cells[2,20])+StrToFloat(StringGrid1.Cells[2,21])+StrToFloat(StringGrid1.Cells[2,22])+StrToFloat(StringGrid1.Cells[2,23])+StrToFloat(StringGrid1.Cells[2,24])+StrToFloat(StringGrid1.Cells[2,25]);
 
   end;
        for j:=27 to {stringgrid1.rowCount-1} 32 do
  begin
  if StringGrid1.Cells[2,32]<>'' then
 
Summ22:=StrToFloat(StringGrid1.Cells[2,27])+StrToFloat(StringGrid1.Cells[2,28])+StrToFloat(StringGrid1.Cells[2,29])+StrToFloat(StringGrid1.Cells[2,30])+StrToFloat(StringGrid1.Cells[2,31])+StrToFloat(StringGrid1.Cells[2,32]);
     razn23:=summ21-summ22;
   end;
 
        for j:=36 to stringgrid1.rowCount-1  do
  begin
  if StringGrid1.Cells[2,36]<>'' then
    Summ31:=StrToFloat(StringGrid1.Cells[2,36]);
       end;
       for j:=38 to 39  do
  begin
  if StringGrid1.Cells[2,39]<>'' then
    Summ32:=StrToFloat(StringGrid1.Cells[2,38])+StrToFloat(StringGrid1.Cells[2,39]);
     razn33:=summ31-summ32;
     razn:=razn13+razn23+razn33;
       end;
 
 
       for j:=3 to {stringgrid1.rowCount-1} 5 do
  begin
  if StringGrid1.Cells[3,5]<>'' then
 
Summ11t:=StrToFloat(StringGrid1.Cells[3,3])+StrToFloat(StringGrid1.Cells[3,4])+StrToFloat(StringGrid1.Cells[3,5]){+StrToFloat(StringGrid1.Cells[2,6])};
 
   end;
   for j:=7 to 15 do
  begin
  if StringGrid1.Cells[3,15]<>'' then
 
Summ12t:=StrToFloat(StringGrid1.Cells[3,7])+StrToFloat(StringGrid1.Cells[3,8])+StrToFloat(StringGrid1.Cells[3,9])+StrToFloat(StringGrid1.Cells[3,10])+StrToFloat(StringGrid1.Cells[3,11])+StrToFloat(StringGrid1.Cells[3,12])+StrToFloat(StringGrid1.Cells[3,13])+StrToFloat(StringGrid1.Cells[3,14])+StrToFloat(StringGrid1.Cells[3,15]);
   Razn13t:=summ11t-summ12t;
          end;
  for j:=19 to {stringgrid1.rowCount-1} 22 do
  begin
  if StringGrid1.Cells[3,22]<>'' then
 
Summ21t:=StrToFloat(StringGrid1.Cells[3,19])+StrToFloat(StringGrid1.Cells[3,20])+StrToFloat(StringGrid1.Cells[3,21])+StrToFloat(StringGrid1.Cells[3,22])+StrToFloat(StringGrid1.Cells[3,23])+StrToFloat(StringGrid1.Cells[3,24])+StrToFloat(StringGrid1.Cells[3,25]);
 
   end;
        for j:=27 to {stringgrid1.rowCount-1} 32 do
  begin
  if StringGrid1.Cells[3,32]<>'' then
 
Summ22t:=StrToFloat(StringGrid1.Cells[3,27])+StrToFloat(StringGrid1.Cells[3,28])+StrToFloat(StringGrid1.Cells[3,29])+StrToFloat(StringGrid1.Cells[3,30])+StrToFloat(StringGrid1.Cells[3,31])+StrToFloat(StringGrid1.Cells[3,32]);
     razn23t:=summ21t-summ22t;
   end;
 
        for j:=36 to stringgrid1.rowCount-1  do
  begin
  if StringGrid1.Cells[3,36]<>'' then
    Summ31t:=StrToFloat(StringGrid1.Cells[3,36]);
       end;
       for j:=38 to 39  do
  begin
  if StringGrid1.Cells[3,39]<>'' then
    Summ32t:=StrToFloat(StringGrid1.Cells[3,38])+StrToFloat(StringGrid1.Cells[3,39]);
     razn33t:=summ31t-summ32t;
     raznt:=razn13t+razn23t+razn33t;
       end;
 
 
      for j:=2 to {stringgrid1.rowCount-1} 8 do
  begin
  if StringGrid2.Cells[1,8]<>'' then
 
Summ11km:=StrToFloat(StringGrid2.Cells[1,2])+StrToFloat(StringGrid2.Cells[1,3])+StrToFloat(StringGrid2.Cells[1,4])+StrToFloat(StringGrid2.Cells[1,5])+StrToFloat(StringGrid2.Cells[1,6])+StrToFloat(StringGrid2.Cells[1,7])+StrToFloat(StringGrid2.Cells[1,8]);
 
   end;
 
      for j:=2 to {stringgrid1.rowCount-1} 8 do
  begin
  if StringGrid2.Cells[2,8]<>'' then
 
Summ11kmo:=StrToFloat(StringGrid2.Cells[2,2])+StrToFloat(StringGrid2.Cells[2,3])+StrToFloat(StringGrid2.Cells[2,4])+StrToFloat(StringGrid2.Cells[2,5])+StrToFloat(StringGrid2.Cells[2,6])+StrToFloat(StringGrid2.Cells[2,7])+StrToFloat(StringGrid2.Cells[2,8]);
 
   end;
         for j:=11 to {stringgrid1.rowCount-1} 13 do
  begin
  if StringGrid2.Cells[1,13]<>'' then
 
Summ12km:=StrToFloat(StringGrid2.Cells[1,11])+StrToFloat(StringGrid2.Cells[1,12])+StrToFloat(StringGrid2.Cells[1,13]);
 
   end;
 
 
    for j:=11 to {stringgrid1.rowCount-1} 13 do
  begin
  if StringGrid2.Cells[2,13]<>'' then
 
Summ12kmo:=StrToFloat(StringGrid2.Cells[2,11])+StrToFloat(StringGrid2.Cells[2,12])+StrToFloat(StringGrid2.Cells[2,13]);
 
   end;
    for j:=16 to {stringgrid1.rowCount-1} 19 do
  begin
  if StringGrid2.Cells[1,19]<>'' then
 
Summ13km:=StrToFloat(StringGrid2.Cells[1,16])+StrToFloat(StringGrid2.Cells[1,17])+StrToFloat(StringGrid2.Cells[1,18])+StrToFloat(StringGrid2.Cells[1,19]);
 
   end;
 
 
    for j:=16 to {stringgrid1.rowCount-1} 19 do
  begin
  if StringGrid2.Cells[2,19]<>'' then
 
Summ13kmo:=StrToFloat(StringGrid2.Cells[2,16])+StrToFloat(StringGrid2.Cells[2,17])+StrToFloat(StringGrid2.Cells[2,18])+StrToFloat(StringGrid2.Cells[2,19]);
 
   end;
  s:=Edit1.Text;
   k:=Edit2.Text;
   summDC:=razn13+razn23+razn33;
   ostatokDC:=summDC+StrToFloat(s);
   summDCt:=razn13t+razn23t+razn33t;
   ostatokDCt:=summDCt+StrToFloat(k);
 
  { if (StrToFloat(stringgrid1.cells[2,16])>=0) and (StrToFloat(stringgrid1.cells[2,33])<0) and
(StrToFloat(stringgrid1.cells[2,40])<0) then begin
  Memo1.Text:='&#213;&#238;&#240;&#238;&#248;&#229;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
{yslovie 1}
{
end
else if (StrToFloat(stringgrid1.cells[2,16])>=0) and (StrToFloat(stringgrid1.cells[2,33])<0) and
(StrToFloat(stringgrid1.cells[2,40])>=0) then begin
Memo1.Text:='&#205;&#238;&#240;&#236;&#224;&#235;&#252;&#237;&#238;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
{yslovie 2}
{end
else if (StrToFloat(stringgrid1.cells[2,16])<0) and (StrToFloat(stringgrid1.cells[2,33])>=0) and
(StrToFloat(stringgrid1.cells[2,40])>=0) then begin
Memo1.Text:='&#202;&#240;&#232;&#231;&#232;&#241;&#237;&#238;&#229;
&#239;&#240;&#229;&#228;&#239;&#240;&#232;&#255;&#242;&#232;&#229;';
 
end ;
             }
  //  ChDPopr:=StrToFloat(stringgrid1.cells[2,3])+StrToFloat(stringgrid1.cells[2,4])+StrToFloat(stringgrid1.cells[2,5]);
Stringgrid1.Cells[2,16]:=FloatToStr(razn13);
Stringgrid1.Cells[2,2]:=FloatToStr(summ11);
Stringgrid1.Cells[2,6]:=FloatToStr(summ12);
Stringgrid1.Cells[2,33]:=FloatToStr(razn23);
Stringgrid1.Cells[2,18]:=FloatToStr(summ21);
Stringgrid1.Cells[2,26]:=FloatToStr(summ22);
Stringgrid1.Cells[2,40]:=FloatToStr(razn33);
Stringgrid1.Cells[2,35]:=FloatToStr(summ31);
Stringgrid1.Cells[2,37]:=FloatToStr(summ32);
StringGrid1.Cells[2,41]:=FloatToStr(razn);
Stringgrid1.Cells[3,16]:=FloatToStr(razn13);
Stringgrid1.Cells[3,2]:=FloatToStr(summ11t);
Stringgrid1.Cells[3,6]:=FloatToStr(summ12t);
Stringgrid1.Cells[3,33]:=FloatToStr(razn23t);
Stringgrid1.Cells[3,18]:=FloatToStr(summ21t);
Stringgrid1.Cells[3,26]:=FloatToStr(summ22t);
Stringgrid1.Cells[3,40]:=FloatToStr(razn33t);
Stringgrid1.Cells[3,35]:=FloatToStr(summ31t);
Stringgrid1.Cells[3,37]:=FloatToStr(summ32t);
StringGrid1.Cells[3,41]:=FloatToStr(raznt);
Edit3.Text:=FloatToStr(ostatokDC);
Edit4.Text:=FloatToStr(ostatokDCt);
 
StringGrid2.Cells[1,9]:=FloatToStr(summ11km);
StringGrid2.Cells[2,9]:=FloatToStr(summ11kmo);
StringGrid2.Cells[1,14]:=FloatToStr(summ12km);
StringGrid2.Cells[2,14]:=FloatToStr(summ12kmo);
StringGrid2.Cells[1,20]:=FloatToStr(summ13km);
StringGrid2.Cells[2,20]:=FloatToStr(summ13kmo);
           end;


Требую награды "Индусокитаец"
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:52 [#36]:

Это такая помесь индусского и китайского, что аж страшно становится.

Не обижайтесь что мы так жестоко, но код действительно КОШМАРЕН. С другой стороны я сам писал похожий код, так что это со временем пройдёт.

ПРОСТО НЕ НАДО БЫЛО ТАК МНОГО ПИСАТЬ ПЕРЕД ТЕМ КАК НАС ПУГАТЬ!!!

А вообще, код даже реФАКторингом за 10 минут уменьшится в 3-4 раза.

Самое удивительное, что ошибка была совершенно в другом месте кода. Зачем вы нам выдавали непойми-что?
Чисти код! Чисти код! Чисти код!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:54 [#37]:

Код работает???!!!
Чисти код! Чисти код! Чисти код!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:54 [#38]:

Цитата (Alinka27):

провести расчет, со значениями, которые в кнопке тест!Расчет проводится по схеме, которая ИНДИЙСКАЯ ЖОПА!

1. Как звучит задание на прогу?
2. Или это тоже секретно?
3. Почему у тебя StringGrid участвует в расчёте?
4. Откуда взялись такие цифры (исходные данные)?

... тут ещё 100495 вопросов ...

100500. Короче, колись давай! Мне уже интересно стало.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 1 июня 2011, 19:56 [#39]:

Цитата (Gooddy):

Код работает???!!!

Ну нахрена Double, когда все числа целые?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Gooddy

Gooddy (статус: 3-ий класс), 1 июня 2011, 19:56 [#40]:

min@y™:
Мне кажется, это рабочая программа (что пугает).
Чисти код! Чисти код! Чисти код!

Страницы: [« Предыдущая] [1] [2] [3] [4] [5] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:36
Выполнено за 0.06 сек.