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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2011, 12:04   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию Ошибка в функции

посмотрите, где ошибка?
Код:
function TForm1.kolchet(symm: Real): Real;
var i: integer;
kyrsval:Real;
prochent:Real;
begin
for i:=1 to Form1.strngrd2.RowCount-2 do
 kyrsval:=StrToFloat(Form1.strngrd2.cells[1,i]);
 prochent:=StrToFloat(Form1.strngrd2.cells[3,i]);
Result:=symm/(kyrsval*prochent); // результат
end;
использую
Код:
procedure TForm1.N6Click(Sender: TObject);
var i: integer;
begin
for i:=1 to Form1.strngrd2.RowCount-2 do
Form1.strngrd2.cells[4,i]:=FloatToStr(kolchet(StrToInt(edt1.Text)));
end;
Выдает ошибку при запуске функции
Project chet.exe raised exception class EConvertError with message'" is not a valid floating point value'. Process stopped. Use
Step or Run to continue.
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 05.01.2011, 12:06   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ячейка пустая значит.
в тексте же все написано...
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.01.2011, 12:09   #3
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Какая ячейка?
А вообще правильно вычисляю функцию? Беру из edt1.text/(первую ячейку строки i * третью ячейку строки i) и записываю в четвертую ячейку строки i
Помог, нажми весы слева

Последний раз редактировалось grafgrial; 05.01.2011 в 18:24.
grafgrial вне форума Ответить с цитированием
Старый 06.01.2011, 13:25   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Функции StrToFloat и StrToInt c не цифровым параметром дадут ошибку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 06.01.2011, 15:02   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Уточню:
Во-первых, вместо
Цитата:
kyrsval:=StrToFloat(Form1.strngrd2. cells[1,i]);
Можно написать
Код:
 kyrsval:=StrToFloatDEF(Form1.strngrd2.cells[1,i],0);
Ошибки не будет, но если в ячейке не целое, просто вернет 0

Во:вторых
Цитата:
for i:=1 to Form1.strngrd2.RowCount-2 do
kyrsval:=StrToFloat(Form1.strngrd2. cells[1,i]);
prochent:=StrToFloat(Form1.strngrd2 .cells[3,i]);
Смысл последней строки в чем? Тут точно не нужен Begin...End? Ато получается что в цикле выполняется только взятие kyrsval, и по идее этот цикл бессмысленен ибо может быть заменен на
Код:
with  Form1.strngrd2 do
 kyrsval:=StrToFloat(cells[1,RowCount-2]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в функции Lotles Общие вопросы C/C++ 10 26.11.2010 16:04
Ошибка в функции Richard22 Общие вопросы Delphi 1 16.05.2010 13:02
ошибка в функции [b]cos[/b] RUSt88 Помощь студентам 6 18.04.2010 23:21
Ошибка, строковые функции С++ Fantazerishka Помощь студентам 5 24.02.2010 22:01
С++. ошибка в функции. phpcreator Помощь студентам 4 16.09.2009 18:42