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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2010, 22:19   #1
1nd1g0
Заблокирован
 
Регистрация: 16.03.2010
Сообщений: 8
По умолчанию delphi, ошибка в проге

выдает ошибку при запуске: "" is not a valid floating point value
помогите пожалуста
сама прога:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var a:array[1..8,1..6] of real;
s:array[1..6] of real;
n,m,i,j,k:integer;
begin
m:=strtoint(Edit1.Text);
n:=strtoint(Edit2.Text);
For i:=1 to n do
For j:=1 to m do
a[i,j]:=strtofloat(M1.Cells[j-1,i-1]);
For j:=1 to m do
begin
s[j]:=0;
For i:=1 to n do
s[j]:=a[i,j]+s[j];
end;
For j:=1 to m do
M2.Cells[j-1,0]:=floattostrf(s[j],fffixed,5,1);
k:=1;
For j:=1 to m do
if s[j]<s[k] then k:=j;
label6.Caption:='min s='+floattostrf(s[k],fffixed,5,1)+'   его №='+inttostr(k);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text<>' ' then
M1.RowCount:=strtoint(Edit1.Text);
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
if Edit2.Text<>' ' then begin
M1.ColCount:=strtoint(Edit2.Text);
M2.ColCount:=strtoint(Edit2.Text);
end;
end;

end.

Последний раз редактировалось Stilet; 20.04.2010 в 09:45.
1nd1g0 вне форума Ответить с цитированием
Старый 16.04.2010, 22:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
a[i,j]:=strtofloat(M1.Cells[j-1,i-1]);
по всей видимости в гриде есть пустые ячейки...
попробуйте либо через if их отследить:
Код:
  if trim(M1.Cells[j-1,i-1])='' then a[i,j]:= 0.0
  else  a[i,j]:=strtofloat(M1.Cells[j-1,i-1]);
либо, кардинальное решение, возьмите блок в try .. except;
тогда можно будет в гриде писать всякую чепуху, а ошибок преобразования всё равно не будет!
Код:
   try
     a[i,j]:=strtofloat(M1.Cells[j-1,i-1]);
   except
     a[i,j]:=0.0;
   end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2010, 00:03   #3
1nd1g0
Заблокирован
 
Регистрация: 16.03.2010
Сообщений: 8
По умолчанию

в том то и дело что пустых клеток нет, разве что это связано с обрезанием массива, может такое быть?(исходный массив 1..8,1..6 мы обрезаем до 1..4,1..3)
1nd1g0 вне форума Ответить с цитированием
Старый 18.04.2010, 00:46   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Компилятор чётко говорит, что "" - это не число. Ну если нет пустых клеток, то может есть фиксированные столбец или строка в компоненте StringGrid? Если есть, то ошибка в них, они ведь тоже индексируются. Иначе показывай весь проект.
eoln вне форума Ответить с цитированием
Старый 19.04.2010, 21:12   #5
1nd1g0
Заблокирован
 
Регистрация: 16.03.2010
Сообщений: 8
По умолчанию

вот сам проект, так и не дождался когда модератор проверит мою ссылку)
Вложения
Тип файла: rar информа.rar (193.8 Кб, 11 просмотров)
1nd1g0 вне форума Ответить с цитированием
Старый 19.04.2010, 21:34   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Путаница со строками и столбцами.
Код:
n:=strtoint(Edit1.Text);
m:=strtoint(Edit2.Text);
eoln вне форума Ответить с цитированием
Старый 19.04.2010, 23:27   #7
1nd1g0
Заблокирован
 
Регистрация: 16.03.2010
Сообщений: 8
По умолчанию

воо, заработало) спасибо большое тебе eoln =)
1nd1g0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нестыковка в проге С++... potap88 Общие вопросы C/C++ 8 27.12.2009 20:13
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в проге на Delphi Dimka666 Помощь студентам 16 03.06.2009 00:33
Ошибка в проге :( Defender42 Помощь студентам 15 29.05.2009 02:08
Ошибка в проге Detrix Помощь студентам 1 12.03.2008 08:28